Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Mac環境構築の自動化と設定バックアップ

以下の記事を参考に、Home BrewBrew Cask を使って環境構築の自動化(省力化)をしてみた。

qiita.com

他にも、Ansibleを使ったMac環境構築の記事はありましたが、AnsbileのバージョンUp時の仕様変更についていくのツライ、Brew Bundleがいい感じにメンテされていきそう、mackupもシンプルで素敵☆ということで上記の記事に沿って対応することにしました。

上記の記事では brew brewdle コマンドを使っていますが、GitHubの本家リポジトリを見る限り brew brewdler brew bundler といったコマンドとともに下位互換性を保つためのエイリアス実装となっており、今後は brew bundle が公式なコマンドとなっていくものと思われるので、これで実装しといた。

GitHub - Homebrew/homebrew-bundle: Bundler for non-Ruby dependencies from Homebrew

他にも参考にした記事、というかbrewで取得するアプリケーションの一覧を覗くだけでも、知らない便利アプリに出会うことができて有意義でした。

Mac の開発環境構築を自動化する (2015 年初旬編) - t-wadaのブログ

既存環境のMac でもansible で環境構築を自動化するには - snowlongの日記

2016/04/21追記

便利な mackup がバージョンアップしてオプション指定方法が変わったのか、パラメータを変えてあげないと動かなくなったのでメモ。

@daily /usr/local/bin/mackup -f backup

2016/07/28追記

Home brew cask の Caskroom のデフォルトロケーションが変更されたこと*1に伴い、crontabの内容を見直す必要ができたのでメモ。

@weekly cd /usr/local/bin/ && time nice -n19 brew update && time nice -n19 brew upgrade && time nice -n19 brew cleanup && for c in `brew cask list`; do ! brew cask info $c | grep -qF "Not installed" || time nice -n19 brew cask install $c; done && time nice -n19 brew cask cleanup && for c in /usr/local/Caskroom/*; do vl=(`ls -t $c`) && for v in "${vl[@]:1}"; do \rm -rf "$c/$v"; done; done; for c in /usr/local/Caskroom/*/.metadata; do vl=(`ls -t $c`) && for v in "${vl[@]:1}"; do \rm -rf "$c/$v"; done; done

dotfilesの整備

また、GitHub に公開されている dotfiles 系リポジトリを参考にシェルまわりの環境設定も合わせて整備した。

GitHub - mathiasbynens/dotfiles: .files, including ~/.macos — sensible hacker defaults for macOS

GitHub - yuku-t/dotfiles: My dotfiles

初期設定まわりが随分とスッキリして、バックアップも取れて安心安心☆というのもありますが、個人的には .gitconfig にgitコマンドのエイリアスを定義しまくって効率化!というのを色々とキャッチアップできたのが大変有用でした。最後に、出来上がったdotfilesはコチラ↓

github.com