]> arthur.barton.de Git - bup.git/commitdiff
join: convert to internal command
authorRob Browning <rlb@defaultvalue.org>
Fri, 12 Feb 2021 23:40:20 +0000 (17:40 -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/join.py
lib/cmd/bup

index b81fa261a39e01b71a78c85cd643d98bd7e3ed9d..caf524a6463f3ae86445657e09894c12a632c876 100755 (executable)
@@ -1,26 +1,9 @@
-#!/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
 
-# Intentionally replace the dirname "$0" that python prepends
-import os, sys
-sys.path[0] = os.path.dirname(os.path.realpath(__file__)) + '/..'
+import sys
 
-from bup import compat, git, options
+from bup import git, options
 from bup.compat import argv_bytes
 from bup.helpers import linereader, log
 from bup.io import byte_stream
@@ -33,34 +16,36 @@ bup join [-r host:path] [refs or hashes...]
 r,remote=  remote repository path
 o=         output filename
 """
-o = options.Options(optspec)
-opt, flags, extra = o.parse(compat.argv[1:])
-if opt.remote:
-    opt.remote = argv_bytes(opt.remote)
 
-git.check_repo_or_die()
+def main(argv):
+    o = options.Options(optspec)
+    opt, flags, extra = o.parse_bytes(argv[1:])
+    if opt.remote:
+        opt.remote = argv_bytes(opt.remote)
+
+    git.check_repo_or_die()
 
-stdin = byte_stream(sys.stdin)
+    stdin = byte_stream(sys.stdin)
 
-if not extra:
-    extra = linereader(stdin)
+    if not extra:
+        extra = linereader(stdin)
 
-ret = 0
-repo = RemoteRepo(opt.remote) if opt.remote else LocalRepo()
+    ret = 0
+    repo = RemoteRepo(opt.remote) if opt.remote else LocalRepo()
 
-if opt.o:
-    outfile = open(opt.o, 'wb')
-else:
-    sys.stdout.flush()
-    outfile = byte_stream(sys.stdout)
+    if opt.o:
+        outfile = open(opt.o, 'wb')
+    else:
+        sys.stdout.flush()
+        outfile = byte_stream(sys.stdout)
 
-for ref in [argv_bytes(x) for x in extra]:
-    try:
-        for blob in repo.join(ref):
-            outfile.write(blob)
-    except KeyError as e:
-        outfile.flush()
-        log('error: %s\n' % e)
-        ret = 1
+    for ref in [argv_bytes(x) for x in extra]:
+        try:
+            for blob in repo.join(ref):
+                outfile.write(blob)
+        except KeyError as e:
+            outfile.flush()
+            log('error: %s\n' % e)
+            ret = 1
 
-sys.exit(ret)
+    sys.exit(ret)
index e89ad2bf729bedf960f8ca6174f4473cb06251b8..ea078edcaf4c1b5df4026e42e2f29f9a2edf8945 100755 (executable)
@@ -188,6 +188,7 @@ try:
     if subcmd_name not in (b'bloom',
                            b'cat-file',
                            b'help',
+                           b'join',
                            b'ls',
                            b'meta',
                            b'version',