dotfile を自動で保存する
Mac や Linux を使っていると自分の rc ファイルが増えてきて一々手動で管理するのもメンドクサイし、外部リポジトリに管理したくないような物もある。
ていことで Dropbox にスクリプトで保存するのを書いた。
#!/usr/bin/env python # -*- coding: utf-8 -*- import os from datetime import datetime from paver.easy import task, path, sh files = [ '.gitconfig', '.gvimrc', '.hgrc', '.history', '.pit', '.pythonrc.py', '.screenrc', '.vim', '.vimperator', '.vimperatorrc', '.vimrc', '.wgetrc', '.zsh', '.zshenv', '.zshrc' ] dropbox_path = '/path/to/Dropbox/dotfiles/dotfile.tar.gz' @task def sync_dot(): rotate() home_path = os.environ['HOME'] os.chdir(home_path) compress(' '.join(files)) sync() def rotate(): if os.path.exists(dropbox_path): os.chdir(os.path.dirname(dropbox_path)) d = datetime.today() name = 'dotfie.%s.tar.gz' % d.strftime('%Y%m%d%H%M%S') print('move dotfile.tar.gz to %s' % name) sh('mv dotfile.tar.gz %s' % name) def compress(items): print('compress to tar cvzf dotfile.tar.gz %s' % items) sh('tar cvzf dotfile.tar.gz %s' % items) def sync(): current = path('./') print('move dotfile.tar.gz to %s' % dropbox_path) sh('mv dotfile.tar.gz %s' % dropbox_path)
$ paver -f sync.py sync_dot
で、Dropbox のディレクトリに dotfile.tar.gz で保存する。
すでに dotfile.tar.gz があったら古いのは日付を付ける。
Paver 便利。
シェルスクリプトでも良いのかもしれんけど…。