emacs起動時にバックグラウンド(非同期)でシェルコマンドを走らせる
emacsは毎日起動しますよね?
だったらライブラリのアップデートなどをその起動時に自動で行うようにしたら便利なのでは?ということで設定しました。
ポイントはasync-shell-commandを使うことでバックグラウンドで起動し、
特に意識することなく普通に他の作業ができることと、
save-window-excursionに設定することでwindow分割やpopupの発生を防いでいることです。
出力結果はAsync Shell Commandバッファに出ています。
とりあえずhomebrewとapt-getのアップデートを設定しておきました。(OSの判定に統一感がないのはご容赦を)
cronで定期実行もいいですが、emacsesにはこちらもおすすめです。
(cond ((or (eq window-system 'ns) (eq window-system 'mac)) (add-hook 'after-init-hook (lambda() (save-window-excursion (async-shell-command "brew update && brew upgrade --all && brew doctor") ) ))) ((eq system-type 'gnu/linux) (add-hook 'after-init-hook (lambda() (save-window-excursion (async-shell-command "sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoremove") ) ))) )