A harder, better, faster, stronger bin/update.sh

This commit is contained in:
Henrik Lissner 2016-10-19 21:39:48 +02:00
parent bf2c16dac3
commit 1bad657c31

41
bin/update.sh Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -o errexit,nounset
update() {
[[ -d $1 ]] || return
pushd "$1"
local L=$(git rev-parse @)
local R=$(git rev-parse @{u})
if [[ $L != $R ]]
then
echo "Updating $(basename $(pwd))"
shift
${@:-git pull}
fi
popd
}
# Update OS
case "$OSTYPE" in
darwin*)
brew update && brew upgrade && brew cleanup
;;
linux*)
if command -v pacman >/dev/null; then
sudo pacman -Syu --noconfirm
elif command -v apt-get >/dev/null; then
sudo apt-get update && sudo apt-get upgrade -y
fi
esac
# Update editors
update ~/.emacs.d "make update"
update ~/.vim "make update"
# Others
update ~/.zgen
update ~/.cask
update ~/.{rb,py}env