brew cask upgrade all な ruby script


何をするのか

  1. brew updateする
  2. brew upgradeする
  3. 最新のパッケージだけuninstall --force & install
  4. brew cleanupする
  5. brew cask cleanupする

ソース

動いてる感じ

dropbox
latest  : latest
current : latest

filezilla
latest  : 3.21.0
current : 3.20.1
filezilla updating..
==> Removing App: '/Applications/FileZilla.app'
==> Downloading https://downloads.sourceforge.net/filezilla/FileZilla_Client/3.21.0/FileZilla_3.21.0_macosx-x86.app.tar.bz2
==> Verifying checksum for Cask filezilla
==> Moving App 'FileZilla.app' to '/Applications/FileZilla.app'
🍺  filezilla was successfully installed!
filezilla updated !!!

補記

最新パッケージがあったら、uninstall --forceするので、仮に旧パッケージがuninstallされずに残っていても綺麗に削除される。ということで、2件以上あったら削除する的な動作は除去した。

ただし、何らかのパッケージ整合性が異常を示すとき、何をするのかの2番目以降でbrewがエラーを吐いて次のパッケージへ処理を移行する。(何故か、caskにpandocが認識されてて(!)とか出てたり、uninstallするとcaskをインストールしなおせとかメッセージが出てたりした)

todo

下記の様に打てるようにbrewをラッピングするか対応したい

brew cask upgrade