summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dpmcgee@gmail.com>2011-04-20 14:01:10 -0500
committerDan McGee <dpmcgee@gmail.com>2011-04-20 14:01:10 -0500
commit75f17a6534670dfb04b223045549b61d480955dc (patch)
tree84eed8eb5dadefa0e1673555202b3eed98fcea78
parente1e51b1523b5c489d92c3453367497f60478c13b (diff)
downloadconfigfiles-75f17a6534670dfb04b223045549b61d480955dc.tar.gz
configfiles-75f17a6534670dfb04b223045549b61d480955dc.zip
Add a fabfile for easy deployment
Signed-off-by: Dan McGee <dpmcgee@gmail.com>
-rw-r--r--.gitignore2
-rw-r--r--fabfile.py53
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: