diff options
author | Dan McGee <dpmcgee@gmail.com> | 2011-04-20 14:01:10 -0500 |
---|---|---|
committer | Dan McGee <dpmcgee@gmail.com> | 2011-04-20 14:01:10 -0500 |
commit | 75f17a6534670dfb04b223045549b61d480955dc (patch) | |
tree | 84eed8eb5dadefa0e1673555202b3eed98fcea78 | |
parent | e1e51b1523b5c489d92c3453367497f60478c13b (diff) | |
download | configfiles-75f17a6534670dfb04b223045549b61d480955dc.tar.gz configfiles-75f17a6534670dfb04b223045549b61d480955dc.zip |
Add a fabfile for easy deployment
Signed-off-by: Dan McGee <dpmcgee@gmail.com>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | fabfile.py | 53 |
2 files changed, 55 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f3d74a9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +*~ diff --git a/fabfile.py b/fabfile.py new file mode 100644 index 0000000..3e2351f --- /dev/null +++ b/fabfile.py @@ -0,0 +1,53 @@ +import os.path + +from fabric.api import get, put, run +from fabric.contrib.files import exists as file_exists + +KNOWN_FILES = { + 'bashrc': '.bashrc', + 'htoprc': '.htoprc', + 'screenrc': '.screenrc', + 'toprc': '.toprc', + 'vimrc': '.vimrc', +} + +KNOWN_TERMINFOS = [ 'rxvt-unicode', 'rxvt-unicode-256color', 'screen-256color' ] + +def _terminfo_paths(terminfo): + '''Returns a (system, user) tuple of paths for where this terminfo file + belongs on a system.''' + first = terminfo[0] + system = '/usr/share/terminfo/%s/%s' % (first, terminfo) + user = '.terminfo/%s/%s' % (first, terminfo) + return (system, user) + +def put_terminfo(names=None): + if not names: + names = KNOWN_TERMINFOS + for name in names: + system_path, user_path = _terminfo_paths(name) + # Put file if system doesn't have it, else remove it + if file_exists(system_path): + if file_exists(user_path): + run('rm %s' % user_path) + else: + run('mkdir -p %s' % os.path.dirname(user_path)) + put(name, user_path) + +def put_configs(files=None): + for key, value in KNOWN_FILES.items(): + put(key, value) + +def put_all(files=None): + put_terminfo() + put_configs(files) + +def get_configs(files=None): + if not files: + files = KNOWN_FILES.values() + for filename in files: + if not filename.startswith('.'): + filename = '.%s' % filename + get(filename) + +# vim: set ts=4 sw=4 et: |