Macを数ヶ月に1回程度の頻度でクリーンインストールするので、シェルスクリプトその他でインストール後の設定を自動化していたけど、色々動かなくなってしまったので作り直して、GitHubに放流した。
ポイントは以下。
- メインはmakeなので、git cloneしたらmakeを実行するだけ。つまりMakefileが本体。
- brewやbrew bundleのパスワード入力は自動(これは以前もやってた)。expectを使ってる。brewそのものはMakefile内、bundleはbrew_bundle.exp
- sshの鍵交換も自動。こちらもexpect。ssh.exp
- Desktopにスクショを置く設定にしていて、スクショが保存されるとyyyymmddhhmmss.pngという名前に変更するフォルダアクションを仕込むのだけど、ここも自動化。これはosascript(AppleScript)で、fa.scpt。
- macOSの新しいバージョンに合わせて、defaultsをいくつか追加・変更。これは、defaults.sh
- 認証が必要なものは今回は無理して入れなかった(以前はやってたけど、GUI操作をAppleScriptで実装してもすぐ変わってしまって動かなくなる原因になる)
- owncloudでいくつかのファイルを同期した後、make postすると残りの設定を実行する
owncloudクライアントの設定はWindows ini形式なので、pythonでconfigparserを使えば自動化出来なくも無いんだけど、かなり面倒なのでやめた。osascriptもアプリ側の対応が不十分で、ちょっと厳しい。本当はここを自動化すれば、make postは不要になるんだけど…。
追記:iCloud Driveのファイルにシンボリックリンクを張れることが分かったので、owncloudの同期を待たずに最後まで実行できるように修正。