Rework homebrew and caskroom bootstrap scripts

This commit is contained in:
2017-05-21 22:05:27 +01:00
parent 2a6a2a5d07
commit c39ab843f9
2 changed files with 161 additions and 122 deletions

View File

@@ -1,17 +1,105 @@
#! /usr/bin/env bash
set -e
pkgs=()
install_packages() {
local group="$1"
shift 1
if [[ " $@ " == " home " ]]; then
pkgs+=(
[ -z "$INSTALLED_PACKAGES" ] && INSTALLED_PACKAGES=( $(brew cask list) )
echo "==> ${group} packages"
for pkg in "$@"; do
local base=$(echo $pkg | awk '{print $1}')
[[ "$base" == *\/* ]] && base=$(basename "$base")
local found=""
for i in ${INSTALLED_PACKAGES[@]}; do
[[ "$base" == "$i" ]] && found=1
done
if [ -z "$found" ]; then
echo " -> Missing: ${base}"
brew cask install ${pkg[@]}
else
echo " -> Installed: ${base}"
fi
done
}
main() {
#
# Define packages
#
local core_pkgs=(
aerial
alfred
appcleaner
bartender
betterzip
betterzipql
caskroom/drivers/logitech-options
firefox
fluid
flux
google-chrome
istat-menus
istumbler
iterm2
karabiner-elements
moom
mplayerx
qlcolorcode
qlimagesize
qlmarkdown
qlprettypatch
qlstephen
qlvideo
quicklook-csv
quicklook-json
quicklookapk
resolutionator
stay
suspicious-package
ubersicht
vlc
wavebox
webpquicklook
)
local work_pkgs=(
atom
bbedit
chicken
cyberduck
dash
docker-edge
github-desktop
google-cloud-sdk
hipchat
insomnia
java
kaleidoscope
licecap
medis
paw
postman
robomongo
sequel-pro
vagrant
virtualbox
visual-studio-code
)
local personal_pkgs=(
adium-beta
android-file-transfer
audio-hijack
autodmg
bowtie
calibre
cloudup
daisydisk
deluge
discord
@@ -25,7 +113,6 @@ if [[ " $@ " == " home " ]]; then
irccloud
keybase
little-snitch
logitech-options
makemkv
messenger
micro-snitch
@@ -39,98 +126,30 @@ if [[ " $@ " == " home " ]]; then
sixtyforce
skype
spotify
# synology-assistant
teamviewer
transmission
unetbootin
virtualbox
virtualc64
viscosity
vmware-fusion
witgui
xld
yakyak
ynab
)
fi
if [[ " $@ " == " work " ]]; then
pkgs+=(
aerial
alfred
appcleaner
atom
bartender
bbedit
betterzip
betterzipql
caskroom/drivers/logitech-options
chicken
cyberduck
dash
docker-edge
firefox
fluid
flux
github-desktop
google-chrome
google-cloud-sdk
hipchat
insomnia
istat-menus
istumbler
iterm2
java
kaleidoscope
karabiner-elements
licecap
medis
moom
mplayerx
paw
postman
qlcolorcode
qlimagesize
qlmarkdown
qlprettypatch
qlstephen
qlvideo
quicklook-csv
quicklook-json
quicklookapk
resolutionator
robomongo
sequel-pro
stay
suspicious-package
ubersicht
vagrant
visual-studio-code
vlc
webpquicklook
)
fi
#
# Install packages
#
installed=( $(brew cask list) )
install_packages "core" "${core_pkgs[@]}"
for pkg in "${pkgs[@]}"; do
base=$(echo $pkg | awk '{print $1}')
if [[ "$base" == *\/* ]]; then
base=$(basename "$base")
if [[ " $@ " == *" work "* ]]; then
install_packages "work" "${work_pkgs[@]}"
fi
found=""
for i in ${installed[@]}; do
if [[ "$base" == "$i" ]]; then
found=1
fi
done
if [ -z "$found" ]; then
echo "--> Missing: ${base}"
brew cask install ${pkg[@]}
else
echo "--> Installed: ${base}"
if [[ " $@ " == *" personal "* ]]; then
install_packages "personal" "${personal_pkgs[@]}"
fi
done
}
main $@

View File

@@ -1,47 +1,67 @@
#! /usr/bin/env bash
set -e
pkgs=(
ack
"aspell --with-lang-en --with-lang-el --with-lang-sv"
bash
bazaar
ctop
dpkg
git
heroku
htop
kubernetes-cli
mysql
peco
rbenv
readline
reattach-to-user-namespace
redis
ruby-build
tccutil
the_silver_searcher
tmux
wget
zsh
)
install_packages() {
local group="$1"
shift 1
installed=( $(brew list) )
[ -z "$INSTALLED_PACKAGES" ] && INSTALLED_PACKAGES=( $(brew list) )
for pkg in "${pkgs[@]}"; do
base=$(echo $pkg | awk '{print $1}')
found=""
echo "==> ${group} packages"
for pkg in "$@"; do
local base=$(echo $pkg | awk '{print $1}')
local found=""
for i in ${installed[@]}; do
if [[ "$base" == "$i" ]]; then
found=1
for i in ${INSTALLED_PACKAGES[@]}; do
[[ "$base" == "$i" ]] && found=1
done
if [ -z "$found" ]; then
echo "--> Missing: ${base}"
brew install ${pkg[@]}
else
echo "--> Installed: ${base}"
fi
done
}
if [ -z "$found" ]; then
echo "--> Missing: ${base}"
brew install ${pkg[@]}
else
echo "--> Installed: ${base}"
fi
done
main() {
#
# Define packages
#
local core_pkgs=(
ack
"aspell --with-lang-en --with-lang-el --with-lang-sv"
bash
bazaar
ctop
dpkg
git
heroku
htop
kubernetes-cli
mysql
peco
rbenv
readline
reattach-to-user-namespace
redis
ruby-build
shellcheck
tccutil
the_silver_searcher
tmux
wget
zsh
)
#
# Install packages
#
install_packages "core" "${core_pkgs[@]}"
}
main $@