dotfilesをgitで管理してみる
今まで設定ファイルをすべてローカルで管理していました。
ですが、正直色々と面倒になって来たので、gitで管理してやることにしました。
それでやったことのメモ書きです。
設定ファイルをひとまとめに
まず~/
直下に.dotfiles
として、設定ファイルをまとめて置くディレクトリを作ってやりました。
$ mkdir ~/.dotfiles
ひとまず、目につくと言うか、よく使うものだけを管理するようにしました。
なので、今回はzsh
とEmacs
の設定ファイルである
.zshrc .emacs
この二つを.dotfiles
直下に配置することにしました。
$ cd ~ $ mv .zshrc .emacs ... ~/.dotfiles
シェルスクリプトでバラ撒く
シェルスクリプトを実行することで、設定ファイルをばら撒こうと思います。
なので、ごりごりと(今回はそんなに書いてないけど)シェルスクリプトを書いていきます。
今回は、設定ファイルの実体ではなく、シンボリックリンクを所定の場所にばら撒いていきます。
こうすることで.dotfiles
ディレクトリのみをgitで管理すれば良いようにします。
今回は、以下のシェルスクリプトをsetting.sh
として作成します。
#!/bin/zsh echo -n "Setting? [y...1/n...0]: " # if文の練習を含めて確認ダイアログを置いた read ans if test ${ans} -eq 1; then ln -s ~/.dotfiles/.emacs ~/.emacs ln -s ~/.dotfiles/.zshrc ~/.zshrc echo "done." else echo "Nothing to do. Exit." fi
では、setting.sh
として、.dotfiles
の中に保存しましょう。
そして、そのままでは実行できないので、実行権限を付けてやります。
$ chmod +x setting.sh
これで、シェルスクリプトsetting.sh
が実行できるようになりました。
gitで管理するための設定をする
この.dotfiles
に対してgitの設定します。
$ cd ~/.dotfiles $ git init $ git remote add origin {リポジトリのURL} $ git add . $ git commit $ git push origin master
とかなり割愛(?)しましたが、こんな感じ
そして構築
この.dotfiles
を環境構築したいアカウントの~/
直下にgit clone
して移動します。
もちろん同じマシンの別アカウントでも、別マシンの別アカウントでも。
$ git clone {リポジトリのURL} $ cd ~/.dotfiles
最後にシェルスクリプトsetting.sh
を走らせます
$ ./setting.sh
これで別環境でも設定ファイルをばら撒けます。
まとめ
設定ファイルはバラまくことができますが、今回はzshやemacsがインストールされていることが前提です。
そのため、効率化という意味ではまだ今ひとつかなという感想です。
今後はログインシェルを変更する等を含めて、自動化できるようにしていきたいです。
まとめのまとめ
シェルスクリプトってやっぱ便利