]> arthur.barton.de Git - bup.git/commitdiff
help: convert to internal command
authorRob Browning <rlb@defaultvalue.org>
Sun, 7 Feb 2021 22:44:44 +0000 (16:44 -0600)
committerRob Browning <rlb@defaultvalue.org>
Sat, 6 Mar 2021 18:29:38 +0000 (12:29 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/cmd/help.py
lib/cmd/bup

index 3ad54ddb917e2554d4d34eac810385cb0ffbdb01..4e30179198b0ce8d1544f5dedb63ad37b23146ad 100755 (executable)
@@ -1,52 +1,34 @@
-#!/bin/sh
-"""": # -*-python-*-
-# https://sourceware.org/bugzilla/show_bug.cgi?id=26034
-export "BUP_ARGV_0"="$0"
-arg_i=1
-for arg in "$@"; do
-    export "BUP_ARGV_${arg_i}"="$arg"
-    shift
-    arg_i=$((arg_i + 1))
-done
-# Here to end of preamble replaced during install
-bup_python="$(dirname "$0")/../../../config/bin/python" || exit $?
-exec "$bup_python" "$0"
-"""
-# end of bup preamble
 
 from __future__ import absolute_import
+import os, glob, sys
 
-# Intentionally replace the dirname "$0" that python prepends
-import os, sys
-sys.path[0] = os.path.dirname(os.path.realpath(__file__)) + '/../..'
-
-import glob
-
-from bup import compat, options, path
+from bup import options, path
 from bup.compat import argv_bytes
 
 
 optspec = """
 bup help <command>
 """
-o = options.Options(optspec)
-opt, flags, extra = o.parse(compat.argv[1:])
 
-if len(extra) == 0:
-    # the wrapper program provides the default usage string
-    os.execvp(path.exe(), [b'bup'])
-elif len(extra) == 1:
-    docname = (extra[0]=='bup' and b'bup' or (b'bup-%s' % argv_bytes(extra[0])))
-    manpath = os.path.join(path.exedir(),
-                           b'../../Documentation/' + docname + b'.[1-9]')
-    g = glob.glob(manpath)
-    try:
-        if g:
-            os.execvp('man', ['man', '-l', g[0]])
-        else:
-            os.execvp('man', ['man', docname])
-    except OSError as e:
-        sys.stderr.write('Unable to run man command: %s\n' % e)
-        sys.exit(1)
-else:
-    o.fatal("exactly one command name expected")
+def main(argv):
+    o = options.Options(optspec)
+    opt, flags, extra = o.parse_bytes(argv[1:])
+
+    if len(extra) == 0:
+        # the wrapper program provides the default usage string
+        os.execvp(path.exe(), [b'bup'])
+    elif len(extra) == 1:
+        docname = (extra[0]=='bup' and b'bup' or (b'bup-%s' % argv_bytes(extra[0])))
+        manpath = os.path.join(path.exedir(),
+                               b'../../Documentation/' + docname + b'.[1-9]')
+        g = glob.glob(manpath)
+        try:
+            if g:
+                os.execvp('man', ['man', '-l', g[0]])
+            else:
+                os.execvp('man', ['man', docname])
+        except OSError as e:
+            sys.stderr.write('Unable to run man command: %s\n' % e)
+            sys.exit(1)
+    else:
+        o.fatal("exactly one command name expected")
index cfee03ec010cd735ab9a623b33827005342f08fc..e89ad2bf729bedf960f8ca6174f4473cb06251b8 100755 (executable)
@@ -187,6 +187,7 @@ if not subcmd_name:
 try:
     if subcmd_name not in (b'bloom',
                            b'cat-file',
+                           b'help',
                            b'ls',
                            b'meta',
                            b'version',