さるるの備忘録(とか色々)

講義のメモとか、技術系の話とか、日常の小ネタとか色々と。

dotfilesをgitで管理してみる

今まで設定ファイルをすべてローカルで管理していました。
ですが、正直色々と面倒になって来たので、gitで管理してやることにしました。
それでやったことのメモ書きです。

設定ファイルをひとまとめに

まず~/直下に.dotfilesとして、設定ファイルをまとめて置くディレクトリを作ってやりました。

$ mkdir ~/.dotfiles

ひとまず、目につくと言うか、よく使うものだけを管理するようにしました。
なので、今回はzshEmacsの設定ファイルである

.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

これで別環境でも設定ファイルをばら撒けます。

まとめ

設定ファイルはバラまくことができますが、今回はzshemacsがインストールされていることが前提です。
そのため、効率化という意味ではまだ今ひとつかなという感想です。

今後はログインシェルを変更する等を含めて、自動化できるようにしていきたいです。

まとめのまとめ

シェルスクリプトってやっぱ便利