Homebrewのoutdatedなパッケージの数をログイン時に表示する
はじめに
パッケージ管理してますか?(挨拶)
自動アップデートするのも、 .bashrc
に brew outdated | wc -l
などと書いて毎ログイン一瞬硬直するのも嫌だったので、 /etc/motd
を使ってひと工夫することにしました。
手順
/etc/motd を作る
/etc/motd
がない前提です。
$ sudo touch /etc/motd $ sudo chown ${USER}:staff /etc/motd $ sudo chmod 644 /etc/motd
スクリプトを準備する
${HOME}/.local/bin/brew-outdated-packages.sh
として以下のシェルスクリプトを作成しました。
#!/bin/bash OutdatedPackagesNumber=$(brew outdated | wc -l) echo "🍺 Outdated brew packages: ${OutdatedPackagesNumber}" > /etc/motd
cronを設定する
crontab -e
で以下の内容を入力し、保存します。時間は任意です。
0 2 * * * brew update && /Users/{{ユーザー名}}/.local/bin/brew-outdated-packages.sh 2>/tmp/brew-outdated-packages-error_$(date +%Y%m%d_%H%M%S)
これで毎晩2時時点のoutdatedなパッケージの数が /etc/motd
に書き込まれます。ログイン時は /etc/motd
を表示するだけなので硬直はありません。別に /etc/motd
である必要はなくて、別のファイルに書き出して .bashrc
でそのファイルを cat
するんでもよさそうです。
追記
brew udpate
もcronで自動実行しないといけないんでした。追記しました。