TL;DR
-
dotfilesを簡単に管理するための雛形(dotLINKS)を作った - https://github.com/zeriyoshi/dotLINKS
- 使用例 : https://github.com/zeriyoshi/dotLINKS_zeriyoshi
dotfiles
Unix系OSの設定ファイルは$HOME以下に.(ドット)から始まるファイル名をつけて保存される場合が多く,これらのファイルはdotfilesと呼ばれたりしています。
例).vimrc .screenrc, .ssh
dotfilesはあくまでもただのファイルなので,gitとシェルスクリプトなどを組み合わせてシンボリックリンクを作成することで様々な環境に設定を持ち運ぶことができます。
しかしいざdotfilesフローを作ろうとしても専用にシェルスクリプトを書かなければならなかったり,書いたシェルスクリプトが特定のシェルに依存していて動かなかったりなど結構問題が発生するものです。
ということでdotfilesを管理する為の雛形的なものを作ってみました。
dotLINKS
dotLINKSはdotfilesをより簡単に管理するための雛形となるシェルスクリプトです。
可能な限りPOSIX標準に準拠するよう書かれており,Unix系のシステム,かつBourne Shell系のシェル(bash, zsh等)であれば(多分)使用することができます。
使い方
初期設定
gitを用いてリポジトリをクローンします。
$ git clone https://github.com/zeriyoshi/dotLINKS
クローンしてきたディレクトリに移動し,./dotlinks.sh initを実行します。
設定するリモートリポジトリのURLを聞かれるので,GitHubなどで作成した自分用のdotfilesリポジトリのアドレスを指定します。
$ ./dotlinks.sh init
Checking git installed status...OK
Your dotLINKS remote repository : ここ
次にhome以下に必要なdotfilesをコピーまたは作成してください。
.sshなどのディレクトリになっているものもそのままコピーするだけでOKです。
一通り作成したら./dotlinks.sh linkを実行することでシンボリックリンクが作成されます。
特に問題なさそうならgit add homeしたあとgit commitしてgit push -u origin masterしてあげれば完了です。
別の環境で使用する
dotfilesを使用したい環境で初期設定で設定したリモートリポジトリをcloneした後,./dotlinks.sh linkするだけで完了です。
シンボリックリンクを削除する
シンボリックリンクを削除するには./dotlinks.sh unlinkを実行してください。不要になったディレクトリがあればそれも自動で削除されます。
dotLINKSを更新する
./dotlinks.sh upgradeを実行することでdotLINKS自体を更新することが出来ます。
**自身でdotlinks.shを編集していた場合には使用できません。**手動でmergeする必要があります。
注意点
秘密鍵やSSH接続先など知られてはまずいものをGitHubへcommitしないように注意しましょう。
その他
./dotlinks.sh usageまたは単に./dotlinks.shとして実行すると使用可能なコマンドと説明が表示されます。
dotLINKS version 0.0.4 (https://github.com/zeriyoshi/dotLINKS)
Usage:
./dotlinks.sh [command]
Commands:
init Initialize dotLINKS.
link Link symbolic links.
unlink Unlink symbolic links.
upgrade Upgrade dotLINKS.
version Show version.
usage Show usage.
参考
シェルスクリプト上にもコメントで記載しておりますが,dotLINKSを作成する上で次の記事を参考にさせて頂きました。この場にてお礼させていただきます。