Files
dotfiles/bin/bootstrap-caskroom

172 lines
2.5 KiB
Bash
Executable File

#! /usr/bin/env bash
set -e
install_packages() {
local group="$1"
shift 1
[ -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=(
1password
aerial
alfred
appcleaner
bartender
betterzip
betterzipql
emacs-pretest
firefox
fluid
flux
google-chrome
gpg-suite
hammerspoon
iina
istat-menus
iterm2
karabiner-elements
logitech-gaming-software
logitech-options
mplayerx
osxfuse
qlcolorcode
qlmarkdown
qlstephen
resolutionator
stay
ubersicht
vlc
)
local work_pkgs=(
atom
bbedit
cyberduck
dash
docker-edge
github-desktop
google-cloud-sdk
insomnia
java
kaleidoscope
licecap
medis
minikube
minishift
paw
postico
postman
robo-3t
rowanj-gitx
sequel-pro
slack
stride
vagrant
virtualbox
visual-studio-code
)
local personal_pkgs=(
4k-video-downloader
adium-beta
android-file-transfer
audio-hijack
autodmg
bowtie
calibre
chicken
daisydisk
deluge
discord
dropbox
ethereum-wallet
filebot
gog-galaxy
google-photos-backup-and-sync
hackety-hack
handbrake
irccloud
istumbler
keybase
little-snitch
makemkv
messenger
micro-snitch
mist
omnigraffle
openemu
parallels-desktop
peakhour
plex-media-player
qlimagesize
qlprettypatch
qlvideo
quicklook-csv
quicklook-json
quicklookapk
rclone-browser
ring
screenhero
sixtyforce
skyfonts
skype
spotify
suspicious-package
teamviewer
transmission
unetbootin
virtualc64
viscosity
vmware-fusion
vnc-viewer
wavebox
webpquicklook
witgui
xld
yakyak
)
#
# Install packages
#
install_packages "core" "${core_pkgs[@]}"
if [[ " $* " == *" work "* ]]; then
install_packages "work" "${work_pkgs[@]}"
fi
if [[ " $* " == *" personal "* ]]; then
install_packages "personal" "${personal_pkgs[@]}"
fi
}
main "$@"