]> arthur.barton.de Git - bup.git/blobdiff - main.py
Add new 'bup web' command.
[bup.git] / main.py
diff --git a/main.py b/main.py
index 77ec76b80bd2ac18826266db89c36cc432274c39..90d0ec8760791477719d6937fd170951e18a8ed9 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -1,14 +1,21 @@
 #!/usr/bin/env python
-
 import sys, os, subprocess, signal, getopt
 
 argv = sys.argv
 exe = argv[0]
 exepath = os.path.split(exe)[0] or '.'
+exeprefix = os.path.split(os.path.abspath(exepath))[0]
 
 # fix the PYTHONPATH to include our lib dir
-libpath = os.path.join(exepath, 'lib')
-cmdpath = os.path.join(exepath, 'cmd')
+if os.path.exists("%s/lib/bup/cmd/." % exeprefix):
+    # installed binary in /.../bin.
+    # eg. /usr/bin/bup means /usr/lib/bup/... is where our libraries are.
+    cmdpath = "%s/lib/bup/cmd" % exeprefix
+    libpath = "%s/lib/bup" % exeprefix
+else:
+    # running from the src directory without being installed first
+    cmdpath = os.path.join(exepath, 'cmd')
+    libpath = os.path.join(exepath, 'lib')
 sys.path[:0] = [libpath]
 os.environ['PYTHONPATH'] = libpath + ':' + os.environ.get('PYTHONPATH', '')
 os.environ['BUP_MAIN_EXE'] = os.path.abspath(exe)
@@ -16,25 +23,6 @@ os.environ['BUP_MAIN_EXE'] = os.path.abspath(exe)
 from bup.helpers import *
 
 
-def columnate(l, prefix):
-    l = l[:]
-    clen = max(len(s) for s in l)
-    ncols = (78 - len(prefix)) / (clen + 2)
-    if ncols <= 1:
-        ncols = 1
-        clen = 0
-    cols = []
-    while len(l) % ncols:
-        l.append('')
-    rows = len(l)/ncols
-    for s in range(0, len(l), rows):
-        cols.append(l[s:s+rows])
-    out = ''
-    for row in zip(*cols):
-        out += prefix + ''.join(('%-*s' % (clen+2, s)) for s in row) + '\n'
-    return out
-
-
 def usage():
     log('Usage: bup [-?|--help] [-d=BUP_DIR|--bup-dir=BUP_DIR] COMMAND [ARGS]'
         + '\n\n')
@@ -49,6 +37,7 @@ def usage():
         midx = 'Index objects to speed up future backups',
         save = 'Save files into a backup set (note: run "bup index" first)',
         split = 'Split a single file into its own backup set',
+        web = 'Launch a web server to examine backup sets',
     )
 
     log('Common commands:\n')
@@ -76,7 +65,8 @@ if len(argv) < 2:
 
 # Handle global options.
 try:
-    global_args, subcmd = getopt.getopt(argv[1:], '?d:', ['help', 'bup-dir='])
+    global_args, subcmd = getopt.getopt(argv[1:], '?Vd:',
+                                        ['help', 'version', 'bup-dir='])
 except getopt.GetoptError, ex:
     log('error: ' + ex.msg + '\n')
     usage()
@@ -87,6 +77,8 @@ dest_dir = None
 for opt in global_args:
     if opt[0] == '-?' or opt[0] == '--help':
         help_requested = True
+    if opt[0] == '-V' or opt[0] == '--version':
+        subcmd = ['version']
     elif opt[0] == '-d' or opt[0] == '--bup-dir':
         dest_dir = opt[1]
     else: