#!/bin/bash # Homebrew Cask Upgrades # 1.0.0 # Jim Myhrberg # jimeh # Show outdated Homebrew Cask formula # https://i.imgur.com/VUMVwZM.png # bash shopt -s extglob main() { local count local formulas local current_version local new_version formulas=() current_version=() new_version=() /usr/local/bin/brew update &> /dev/null while read -r line; do if [[ "$line" =~ ^(.+)\ \((.+)\)\ !=\ (.*)$ ]]; then formulas+=("${BASH_REMATCH[1]}") current_version+=("${BASH_REMATCH[2]}") new_version+=("${BASH_REMATCH[3]}") fi done < <(/usr/local/bin/brew cask outdated -v) count="${#formulas[@]}" echo ":tropical_drink:↑${count} | dropdown=false" echo '---' if [ "$count" == "1" ]; then echo "$count outdated cask" else echo "$count outdated casks" fi if [ "$count" -gt 0 ]; then echo 'Upgrade all casks | terminal=true refresh=true' \ 'bash=/usr/local/bin/brew param1=cask param2=upgrade' echo '---' echo 'Upgrade:' for i in "${!formulas[@]}"; do echo "${formulas[$i]}" echo "--${current_version[$i]} → ${new_version[$i]} |" \ "terminal=true refresh=true bash=/usr/local/bin/brew param1=cask" \ "param2=upgrade param3=${formulas[$i]}" done fi } main "$@"