exec "$bup_python" "$0" ${1+"$@"}
"""
# end of bup preamble
+
+from __future__ import absolute_import
import sys
-from bup import git, options, client
-from bup.helpers import *
+
+from bup import git, options
+from bup.compat import argv_bytes
+from bup.helpers import linereader, log
+from bup.io import byte_stream
+from bup.repo import LocalRepo, RemoteRepo
optspec = """
"""
o = options.Options(optspec)
(opt, flags, extra) = o.parse(sys.argv[1:])
+if opt.remote:
+ opt.remote = argv_bytes(opt.remote)
git.check_repo_or_die()
+stdin = byte_stream(sys.stdin)
+
if not extra:
- extra = linereader(sys.stdin)
+ extra = linereader(stdin)
ret = 0
-
-if opt.remote:
- cli = client.Client(opt.remote)
- cat = cli.cat
-else:
- cp = git.CatPipe()
- cat = cp.join
+repo = RemoteRepo(opt.remote) if opt.remote else LocalRepo()
if opt.o:
outfile = open(opt.o, 'wb')
else:
- outfile = sys.stdout
+ sys.stdout.flush()
+ outfile = byte_stream(sys.stdout)
-for id in extra:
+for ref in [argv_bytes(x) for x in extra]:
try:
- for blob in cat(id):
+ for blob in repo.join(ref):
outfile.write(blob)
- except KeyError, e:
+ except KeyError as e:
outfile.flush()
log('error: %s\n' % e)
ret = 1