]> arthur.barton.de Git - bup.git/blob - cmd/join-cmd.py
Use absolute_import from the __future__ everywhere
[bup.git] / cmd / join-cmd.py
1 #!/bin/sh
2 """": # -*-python-*-
3 bup_python="$(dirname "$0")/bup-python" || exit $?
4 exec "$bup_python" "$0" ${1+"$@"}
5 """
6 # end of bup preamble
7
8 from __future__ import absolute_import
9 import sys
10
11 from bup import git, options
12 from bup.helpers import linereader, log
13 from bup.repo import LocalRepo, RemoteRepo
14
15
16 optspec = """
17 bup join [-r host:path] [refs or hashes...]
18 --
19 r,remote=  remote repository path
20 o=         output filename
21 """
22 o = options.Options(optspec)
23 (opt, flags, extra) = o.parse(sys.argv[1:])
24
25 git.check_repo_or_die()
26
27 if not extra:
28     extra = linereader(sys.stdin)
29
30 ret = 0
31 repo = RemoteRepo(opt.remote) if opt.remote else LocalRepo()
32
33 if opt.o:
34     outfile = open(opt.o, 'wb')
35 else:
36     outfile = sys.stdout
37
38 for ref in extra:
39     try:
40         for blob in repo.join(ref):
41             outfile.write(blob)
42     except KeyError as e:
43         outfile.flush()
44         log('error: %s\n' % e)
45         ret = 1
46
47 sys.exit(ret)