X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbup%2Fcmd%2Fjoin.py;h=bb66585aadc5676ac8951da8cf8a26293ad92bce;hb=015ca2d3419e59109b73fa8e37913f4d0e1e3048;hp=b81fa261a39e01b71a78c85cd643d98bd7e3ed9d;hpb=e9927d1a7e6742a157c9c4080d3bfe961dc4b1fa;p=bup.git diff --git a/lib/bup/cmd/join.py b/lib/bup/cmd/join.py index b81fa26..bb66585 100755 --- a/lib/bup/cmd/join.py +++ b/lib/bup/cmd/join.py @@ -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 + with RemoteRepo(opt.remote) if opt.remote else LocalRepo() as repo: -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)