Dottoの設定ファイルをPerlで書けるようにした
前はYAMLだったけど、Perlでも書けるようにした。
拡張子が「.pl」ならPerlスクリプトとして実行します。
Perlだと同じ部分を変数に代入したりできるので便利ですね。
ただしPerlならなんでもいいので
ある程度宣言的に書かないと一気にわかりづらくなりそうです。
でも設定ファイルでごにょごにょできるとうれしいので便利だと思います。(例: .vimrc)
例
Perl
{ directory => "dotfiles", files => [ 'bin', '.vim', '.vimrc', '.gvimrc', '.vimperator', '.vimperatorrc', '.bash_profile', '.bashrc', '.screenrc', '.inputrc', '.zshrc', '.zshenv', '.zsh', '.skel', '.module-starter', '.w3m/keymap', '.Xmodmap', '.shrc.common', '.shrc.cygwin', '.shrc.start-screen', '.env.common', '.tmux.conf', '.tmux', '.uim', '.uim.d/customs', ], os_files => do { $_ = { '.vimperator' => 'vimperator', '.vimperatorrc' => '_vimperatorrc', }; { MSWin32 => $_, cygwin => $_, }; }, ignore_files => [ '.vim/backup', '.vim/.netrwhist', '.vim/.VimballRecord', '.vim/info', '.vim/record', '.vim/sessions', '.vim/swap', '.vimperator/info', ], }
追記: os_filesのところはこれでよかった
os_files => { map { $_ => { '.vimperator' => 'vimperator', '.vimperatorrc' => '_vimperatorrc', } } qw(MSWin32 cygwin) },
YAML
directory: dotfiles files: - bin - .vim - .vimrc - .gvimrc - .vimperator - .vimperatorrc - .bash_profile - .bashrc - .screenrc - .inputrc - .zshrc - .zshenv - .zsh - .skel - .module-starter - .w3m/keymap - .Xmodmap - .shrc.common - .shrc.cygwin - .shrc.start-screen - .env.common - .tmux.conf - .tmux - .uim - .uim.d/customs os_files: MSWin32: .vimperator: vimperator .vimperatorrc: _vimperatorrc cygwin: .vimperator: vimperator .vimperatorrc: _vimperatorrc ignore_files: - .vim/backup - .vim/.netrwhist - .vim/.VimballRecord - .vim/info - .vim/record - .vim/sessions - .vim/swap - .vimperator/info