Updates wapm packages
This commit is contained in:
parent
e75a69b8cb
commit
1ff3b89028
58
bin/update
58
bin/update
|
@ -103,6 +103,26 @@ _check_date() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Returns 0 if $1 > $2
|
||||||
|
_semver_greater() {
|
||||||
|
local major_1=$(echo $1 | cut -d '.' -f 1)
|
||||||
|
local minor_1=$(echo $1 | cut -d '.' -f 2)
|
||||||
|
local patch_1=$(echo $1 | cut -d '.' -f 3)
|
||||||
|
local major_2=$(echo $2 | cut -d '.' -f 1)
|
||||||
|
local minor_2=$(echo $2 | cut -d '.' -f 2)
|
||||||
|
local patch_2=$(echo $2 | cut -d '.' -f 3)
|
||||||
|
|
||||||
|
if [ $major_1 -gt $major_2 ]; then
|
||||||
|
return 0
|
||||||
|
elif [ $major_1 -eq $major_2 ] && [ $minor_1 -gt $minor_2 ]; then
|
||||||
|
return 0
|
||||||
|
elif [ $major_1 -eq $major_2 ] && [ $minor_1 -eq $minor_2 ] && [ $patch_1 -gt $patch_2 ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
update-system() {
|
update-system() {
|
||||||
|
|
||||||
if [ -f ~/.config/dotfiles/.data/noroot ]; then
|
if [ -f ~/.config/dotfiles/.data/noroot ]; then
|
||||||
|
@ -244,6 +264,7 @@ update-wasm() {
|
||||||
|
|
||||||
local old_path=$PWD
|
local old_path=$PWD
|
||||||
|
|
||||||
|
# Protect dotfiles from being modified by wasmer self-update
|
||||||
cd ~/.config/dotfiles
|
cd ~/.config/dotfiles
|
||||||
git stash > /dev/null 2>&1
|
git stash > /dev/null 2>&1
|
||||||
wasmer self-update
|
wasmer self-update
|
||||||
|
@ -254,6 +275,41 @@ update-wasm() {
|
||||||
local seconds=$((`date +%s` - $start))
|
local seconds=$((`date +%s` - $start))
|
||||||
local formatted=`date -ud "@$seconds" +'%H hours %M minutes %S seconds'`
|
local formatted=`date -ud "@$seconds" +'%H hours %M minutes %S seconds'`
|
||||||
echo -e "\033[32;1m=== Wasm updated in $formatted ===\033[0m"
|
echo -e "\033[32;1m=== Wasm updated in $formatted ===\033[0m"
|
||||||
|
|
||||||
|
command -v wapm > /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
start=`date +%s`
|
||||||
|
echo -e "\033[32;1m=== Updating wapm packages ===\033[0m"
|
||||||
|
|
||||||
|
local output=$(wapm list -g | grep '^ _/' | cut -d '|' -f 1 | cut -d '/' -f 2 | while read package; do
|
||||||
|
local package_trimmed=$(echo $package | tr -d '[:space:]')
|
||||||
|
local current_version=$(wapm list -g | grep "^ _/$package_trimmed " | cut -d '|' -f 2 | tr -d '[:space:]')
|
||||||
|
local last_version=$(wapm search $package_trimmed | grep $package_trimmed | cut -d '|' -f 4 | tr -d '[:space:'])
|
||||||
|
local needs_update="No"
|
||||||
|
if _semver_greater $last_version $current_version; then
|
||||||
|
needs_update="Yes"
|
||||||
|
fi
|
||||||
|
echo $package_trimmed@$current_version@$last_version@$needs_update
|
||||||
|
done | column -t -s "@" -N "Package,Installed,Latest,Needs update")
|
||||||
|
|
||||||
|
if [ "$output" != "" ]; then
|
||||||
|
echo -e "$output\n"
|
||||||
|
else
|
||||||
|
echo "No packages to update"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for package in $(echo "$output" | tail -n +2 | grep 'Yes' | cut -d ' ' -f 1); do
|
||||||
|
echo Updating $package
|
||||||
|
wapm install -g $package
|
||||||
|
done
|
||||||
|
|
||||||
|
local seconds=$((`date +%s` - $start))
|
||||||
|
local formatted=`date -ud "@$seconds" +'%H hours %M minutes %S seconds'`
|
||||||
|
echo -e "\033[32;1m=== Wapm packages updated in $formatted ===\033[0m"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update-npm() {
|
update-npm() {
|
||||||
|
@ -346,7 +402,7 @@ _print_usage() {
|
||||||
echo -e "\033[33mSUBCOMMANDS:\033[0m"
|
echo -e "\033[33mSUBCOMMANDS:\033[0m"
|
||||||
echo -e " \033[32msystem\033[0m Updates the system (Debian, Archlinux, Fedora)"
|
echo -e " \033[32msystem\033[0m Updates the system (Debian, Archlinux, Fedora)"
|
||||||
echo -e " \033[32mrust\033[0m Updates rust and rust packages (requires rustup)"
|
echo -e " \033[32mrust\033[0m Updates rust and rust packages (requires rustup)"
|
||||||
echo -e " \033[32mwasm\033[0m Updates wasmer"
|
echo -e " \033[32mwasm\033[0m Updates wasmer and wapm packages"
|
||||||
echo -e " \033[32mnpm\033[0m Updates npm packages (in ~/.config/npmbin)"
|
echo -e " \033[32mnpm\033[0m Updates npm packages (in ~/.config/npmbin)"
|
||||||
echo -e " \033[32mdotfiles\033[0m Updates the dotfiles"
|
echo -e " \033[32mdotfiles\033[0m Updates the dotfiles"
|
||||||
echo -e " \033[32mneovim\033[0m Updates the neovim packages"
|
echo -e " \033[32mneovim\033[0m Updates the neovim packages"
|
||||||
|
|
Loading…
Reference in New Issue