|
5 | 5 | To simulate incremental imports the environment variable SVNRMAX can be set
|
6 | 6 | to the highest revision that should be available.
|
7 | 7 | """
|
8 |
| -import sys, os |
| 8 | +import sys |
| 9 | +import os |
9 | 10 |
|
10 | 11 | if sys.hexversion < 0x02040000:
|
11 |
| - # The limiter is the ValueError() calls. This may be too conservative |
12 |
| - sys.stderr.write("svnrdump-sim.py: requires Python 2.4 or later.\n") |
13 |
| - sys.exit(1) |
| 12 | + # The limiter is the ValueError() calls. This may be too conservative |
| 13 | + sys.stderr.write("svnrdump-sim.py: requires Python 2.4 or later.\n") |
| 14 | + sys.exit(1) |
| 15 | + |
14 | 16 |
|
15 | 17 | def getrevlimit():
|
16 |
| - var = 'SVNRMAX' |
17 |
| - if var in os.environ: |
18 |
| - return os.environ[var] |
19 |
| - return None |
| 18 | + var = 'SVNRMAX' |
| 19 | + if var in os.environ: |
| 20 | + return os.environ[var] |
| 21 | + return None |
| 22 | + |
20 | 23 |
|
21 | 24 | def writedump(url, lower, upper):
|
22 |
| - if url.startswith('sim://'): |
23 |
| - filename = url[6:] |
24 |
| - if filename[-1] == '/': filename = filename[:-1] #remove terminating slash |
25 |
| - else: |
26 |
| - raise ValueError('sim:// url required') |
27 |
| - f = open(filename, 'r'); |
28 |
| - state = 'header' |
29 |
| - wroterev = False |
30 |
| - while(True): |
31 |
| - l = f.readline() |
32 |
| - if l == '': break |
33 |
| - if state == 'header' and l.startswith('Revision-number: '): |
34 |
| - state = 'prefix' |
35 |
| - if state == 'prefix' and l == 'Revision-number: %s\n' % lower: |
36 |
| - state = 'selection' |
37 |
| - if not upper == 'HEAD' and state == 'selection' and l == 'Revision-number: %s\n' % upper: |
38 |
| - break; |
| 25 | + if url.startswith('sim://'): |
| 26 | + filename = url[6:] |
| 27 | + if filename[-1] == '/': |
| 28 | + filename = filename[:-1] # remove terminating slash |
| 29 | + else: |
| 30 | + raise ValueError('sim:// url required') |
| 31 | + f = open(filename, 'r') |
| 32 | + state = 'header' |
| 33 | + wroterev = False |
| 34 | + while(True): |
| 35 | + l = f.readline() |
| 36 | + if l == '': |
| 37 | + break |
| 38 | + if state == 'header' and l.startswith('Revision-number: '): |
| 39 | + state = 'prefix' |
| 40 | + if state == 'prefix' and l == 'Revision-number: %s\n' % lower: |
| 41 | + state = 'selection' |
| 42 | + if not upper == 'HEAD' and state == 'selection' and \ |
| 43 | + l == 'Revision-number: %s\n' % upper: |
| 44 | + break |
39 | 45 |
|
40 |
| - if state == 'header' or state == 'selection': |
41 |
| - if state == 'selection': wroterev = True |
42 |
| - sys.stdout.write(l) |
43 |
| - return wroterev |
| 46 | + if state == 'header' or state == 'selection': |
| 47 | + if state == 'selection': |
| 48 | + wroterev = True |
| 49 | + sys.stdout.write(l) |
| 50 | + return wroterev |
44 | 51 |
|
45 | 52 | if __name__ == "__main__":
|
46 |
| - if not (len(sys.argv) in (3, 4, 5)): |
47 |
| - print("usage: %s dump URL -rLOWER:UPPER") |
48 |
| - sys.exit(1) |
49 |
| - if not sys.argv[1] == 'dump': raise NotImplementedError('only "dump" is suppported.') |
50 |
| - url = sys.argv[2] |
51 |
| - r = ('0', 'HEAD') |
52 |
| - if len(sys.argv) == 4 and sys.argv[3][0:2] == '-r': |
53 |
| - r = sys.argv[3][2:].lstrip().split(':') |
54 |
| - if not getrevlimit() is None: r[1] = getrevlimit() |
55 |
| - if writedump(url, r[0], r[1]): ret = 0 |
56 |
| - else: ret = 1 |
57 |
| - sys.exit(ret) |
| 53 | + if not (len(sys.argv) in (3, 4, 5)): |
| 54 | + print("usage: %s dump URL -rLOWER:UPPER") |
| 55 | + sys.exit(1) |
| 56 | + if not sys.argv[1] == 'dump': |
| 57 | + raise NotImplementedError('only "dump" is suppported.') |
| 58 | + url = sys.argv[2] |
| 59 | + r = ('0', 'HEAD') |
| 60 | + if len(sys.argv) == 4 and sys.argv[3][0:2] == '-r': |
| 61 | + r = sys.argv[3][2:].lstrip().split(':') |
| 62 | + if not getrevlimit() is None: |
| 63 | + r[1] = getrevlimit() |
| 64 | + if writedump(url, r[0], r[1]): |
| 65 | + ret = 0 |
| 66 | + else: |
| 67 | + ret = 1 |
| 68 | + sys.exit(ret) |
0 commit comments