brew update と set -e を一緒に使っていて処理が止まった
開発環境セットアップにて, set -e
を使っていると,brew install
の部分で処理が止まった.
よく観察してみると,brew update
にて既存のアップデートがある場合にはerrorで返すことが見られた.
状況
intialSetup.sh
set -e
brew install formula # 表題の出力とともにここで止まる.
echo # brew install でエラー終了することにより実行されないことがある.
落ち着いた解法
packageがあるかどうかを確認してupgradeする.
if brew ls --versions ${formula} ; then
brew upgrade ${formula}
else
brew install ${formula}
fi
コミュニティで報告されていた解法
エラー出力を捨てる.
brew install ${formula} 2>/dev/null && true
installだけ set +e 解除する
set +e
brew install ${formula}
set -e
参考
https://github.com/Homebrew/brew/issues/2491
brew側では,upgrade-if-installedみたいなオプションを実装する予定はないみたい