Humanity

Edit the world by your favorite way

Dottoっていうdotfilesを管理する便利ツール寄せ集めたもの作った

tyru/dotto · GitHub

ちょっと前に作ってたもののブログに書くの忘れてた。
ホームディレクトリの設定ファイル(以下dotfiles)を
別ディレクトリで管理するのにいろいろ便利なツールを寄せ集めたものです。
それぞれ紹介していきます。

環境

Perlが入ってれば動きます。
依存モジュールはdottoのリポジトリ

$ cpanm .

すれば入ります。

以前はシェルスクリプトのものなんかもあったりしましたが
最近自分がWindowsでnyacusを使って開発してることもあって全部Perlで書き直しました。(movein.shはまだでした)

OSはUbuntuWindowsで確認しています。

設定ファイル

設定ファイルはYAMLで書きます。

パスは
1. -cオプションで指定
2. 環境変数DOTTORCによって指定
ができ、1のほうが優先されます。


設定ファイルによっては、OSによって違った名前のものがあります(たとえば.vimやvimfilesなど)。
そういった設定ファイルにも対応しています。


自分の設定ファイルの例を置いておきます。
http://github.com/tyru/dotfiles/tree/master/files.yaml

実際の使い方 (例)

自分はdotfilesというGithubリポジトリでdotfilesをバージョン管理してるので
このリポジトリにsubmoduleとしてtools/という名前で置いてます。

ツールの説明

詳しい説明は--helpを見てもらうとして簡単な説明だけ。

copy-dotfiles

これはdotfilesをあるディレクトリから別のディレクトリにコピーするコマンドです。
次のようにして使います。

# --helpから
$ copy-dotfiles -i ~ -o dotfiles [OPTIONS]
$ copy-dotfiles -i dotfiles -o ~ [OPTIONS]

dotfileが存在したら上書きしないので
上書きする際は-fオプションを指定してください。

自分はcygwinなんかを使ってた時はこのコマンドを使って
Github上からdotfilesをとってきてインストールしてました。
ただシンボリックリンクが使える環境の場合は
後述するinstall-symlinksのほうがずっと楽です。

delete-dotfiles

何か問題が起きたりした時はこれでdotfilesを消します。
消すのはホームディレクトリのdotfilesです。
実際に消すには確認のための-fオプションが必要です。

install-symlinks

便利だと思うのがinstall-symlinksというコマンドで、
実態は違うディレクトリに置いて
gitとかで管理しながらホームディレクトリにはシンボリックリンクを貼っておくコマンドです。

dotfileが存在したら上書きしないので
上書きする際は-fオプションを指定してください。

sync-vim-rtp-files

これはVimのruntimepathのディレクトリを一緒くたにして
一箇所のディレクトリに置くものです。

$ sync-vim-rtp-files rtp
upload-to-vimrcbox

vimrcboxに.vimrcをアップロードするためのスクリプトです。

$ upload-to-vimrcbox

http://vrcb.soralabo.net/
vimrcbox をリリースしました。 - cod.note
http://vim-users.jp/2009/10/hack95/

TODO

  • 別のディレクトリにある(ホームディレクトリじゃない)設定ファイルも管理できるように
  • プライベートな設定ファイルもプライベートのまま管理したい
    • 具体的にどうやって?

hoge

すばらしいソフトウェアはdotfilesから生まれる(キリッ
ということでdotfilesの管理がスムーズになるdottoいれてみてはいかがでしょうか。