]> arthur.barton.de Git - bup.git/blob - cmd-join.py
Move python library files to lib/bup/
[bup.git] / cmd-join.py
1 #!/usr/bin/env python
2 import sys, time, struct
3 from bup import hashsplit, git, options, client
4 from bup.helpers import *
5 from subprocess import PIPE
6
7
8 optspec = """
9 bup join [-r host:path] [refs or hashes...]
10 --
11 r,remote=  remote repository path
12 """
13 o = options.Options('bup join', optspec)
14 (opt, flags, extra) = o.parse(sys.argv[1:])
15
16 git.check_repo_or_die()
17
18 if not extra:
19     extra = linereader(sys.stdin)
20
21 ret = 0
22
23 if opt.remote:
24     cli = client.Client(opt.remote)
25     cat = cli.cat
26 else:
27     cp = git.CatPipe()
28     cat = cp.join
29
30 for id in extra:
31     try:
32         for blob in cat(id):
33             sys.stdout.write(blob)
34     except KeyError, e:
35         sys.stdout.flush()
36         log('error: %s\n' % e)
37         ret = 1
38
39 sys.exit(ret)