OSXのHomebrewでインストールするのをitamaeでやるようにした
自分のマシンの環境構築
数年に一度なのでイマイチ自動化とかしてなかったのだけど、Homebrewでインストールするヤツくらい自動化しても良いかと思ったので、 itamae-kitchen/itamae · GitHub でやるようにした。
caskでのインストールとかまで自動でできるようになると結構良いかなーと思っているが、そこまでやってない。。。
このエントリを読んで得られるもの
itamae
についてちょっとだけ知識を得られるかもしれません。
- パッケージのインストールを行う方法
- シェルスクリプトの実行をする方法
itamae
のlocal
モード(実行しているマシン自身を対象とする)の実行方法
リポジトリと実際のソースコードはこんな感じ
dotfiles/app_setup at master · sugamasao/dotfiles · GitHub
主に package
リソースを使っていますが、brew tap
の部分は直接シェルスクリプトを実行しているため、 execute
リソースを使っています。
また、Homebrewは重複してインストールしてもエラーになったりはしませんが、 only_if
や not_if
を使ってインストール済みであれば実行をスキップするようにして処理時間を短縮しています。
# brew install %w(openssl git tig imagemagick mysql zsh tmux mecab mecab-ipadic tree).each do |pkg| package pkg do action :install only_if "brew info #{ pkg } | grep -qi 'Not Installed'" end end ## using tap repository %w(sanemat/font peco/peco).each do |tap_name| execute "using tap #{ tap_name }" do command "brew tap #{ tap_name }" not_if "brew tap | grep -q '#{ tap_name }'" end end %w(ricty peco).each do |pkg| package pkg do action :install only_if "brew info #{ pkg } | grep -qi 'Not Installed'" end end
local
モードで実行するにはこのようにする。
$ bundle exec itamae local recipe.rb
まーこの程度シェルスクリプトでも良いじゃん?という気もするんだけど、今どきはOSXでもRuby 2.0系がデフォルトで入るようになってるし、臆さずRuby使ってけば良いのではという気持ちになっている。あと重要なのはitamaeを気に入ってるので、使っていきたいという気持ちw