This repository has been archived by the owner on Jul 19, 2020. It is now read-only.
/
software-update.sh
executable file
·53 lines (43 loc) · 1.64 KB
/
software-update.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#! /usr/bin/env bash
# shellcheck source=/Users/vamac/bin/progress.sh
set -e
if [ -f "${HOME}/bin/progress.sh" ]; then source "$HOME/bin/progress.sh"; fi
work() {
[ "$1" == "silently" ] && local silently=">/dev/null 2>&1"
set -e
[ "$silently" ] && progress start "Upgrading homebrew"
# || true because brew fails on pinned itens being upgraded...
eval setsid -w brew upgrade </dev/null "$silently" || true
set +e # clover configurator issues
eval setsid -w brew cask upgrade </dev/null "$silently"
set -e
[ "$silently" ] && progress finish "$?"
[ "$silently" ] && progress start "Scrubbing homebrew's cache"
eval brew cleanup -s --prune=31 "$silently"
[ "$silently" ] && progress finish "$?"
[ "$silently" ] && progress start "Updating NPM global packages"
eval npm update -g "$silently"
eval npm -g i caniuse "$silently"
[ "$silently" ] && progress finish "$?"
[ "$silently" ] && progress start "Updating gems"
# /usr/bin/gem often conflicts. MacOS version is root - wheel, no write perm.
eval "setsid -w yes | /usr/local/opt/ruby/bin/gem update $silently" || true
eval /usr/local/opt/ruby/bin/gem cleanup "$silently"
[ "$silently" ] && progress finish "$?"
[ "$silently" ] && progress start "Updating Node"
eval "yes | nvm install node $silently"
[ "$silently" ] && progress finish "$?"
}
case "$1" in
--dont-ask | -f)
work silently || progress finish "$?"
exit 0
;;
esac
#confirm upgrade
precho "Upgrade all cli-software now? (y/n)
...defaulting to no in 5s"
if ! read -rt 5; then exit $?; fi
if [ "$REPLY" == "y" ] || [ "$REPLY" == "yes" ] || [ "$REPLY" == "Y" ] || [ "$REPLY" == "YES" ]; then
work
fi