dotfiles の svn 管理

Developer Enviroments Conference の発表資料 - 2nd life
今さらながらdotfilesをsvnで管理するようにしました。

上のリンク先にあったスクリプトRubyだったのでPythonで書き直し。
元のファイルには'.'をつけたくないので、例えば'zshrc'としてチェックインされてることを想定。

#!/usr/bin/env python
from os import remove, symlink
from os.path import abspath, basename, expanduser, join, lexists
from glob import glob

for f in glob('*/*'):
    src = abspath(f)
    target = join(expanduser('~'), '.' + basename(f))
    if lexists(target):
        remove(target)
    symlink(src, target)

なんかいまいち...


シェルスクリプトが一番良さそう

for f in */*; do ln -sf `pwd`/$f ~/.`basename $f`; done