#! /usr/bin/env bash set -e install_packages() { local group="$1" shift 1 [ -z "$INSTALLED_PACKAGES" ] && INSTALLED_PACKAGES=( $(brew list) ) echo "==> ${group} packages" for pkg in "$@"; do local base=$(echo $pkg | awk '{print $1}') local found="" 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 } main() { # # Define packages # local core_pkgs=( "aspell --with-lang-en --with-lang-el --with-lang-sv" "global --with-ctags --with-pygments" ack bash bazaar chromedriver colordiff ctop dpkg geckodriver git git-standup heroku htop httpie jq kubernetes-cli kubernetes-helm less mysql openshift-cli peco pyenv rbenv rclone readline reattach-to-user-namespace redis ruby-build shellcheck source-highlight sshfs the_silver_searcher thefuck tmux tree watch wget yank zsh ) local personal_pkgs=( "mkvtoolnix --with-qt" ) # # Install packages # install_packages "core" "${core_pkgs[@]}" if [[ " $* " == *" personal "* ]]; then install_packages "personal" "${personal_pkgs[@]}" fi } main "$@"