Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/MkDistr.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | e1413fa64b83 |
| children | 05189f7cdbeb |
| rev | line source |
|---|---|
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 # Interactively decide what to distribute |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 # The exclude file signals files to always exclude, |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
6 # The pattern file lines are of the form |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
7 # *.c |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
8 # This excludes all files ending in .c. |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 # The include file signals files and directories to include. |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 # Records are of the form |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
12 # ('Tools:bgen:AE:AppleEvents.py', 'Lib:MacToolbox:AppleEvents.py') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
13 # This includes the specified file, putting it in the given place, or |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
14 # ('Tools:bgen:AE:AppleEvents.py', None) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
15 # This excludes the specified file. |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 from MkDistr_ui import * |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 import fnmatch |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 import regex |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 import os |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 import sys |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 import macfs |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 import macostools |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 SyntaxError='Include/exclude file syntax error' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 class Matcher: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 """Include/exclude database, common code""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
30 def __init__(self, filename): |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 self.filename = filename |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 self.rawdata = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 self.parse(filename) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 self.rawdata.sort() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 self.rebuild() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 self.modified = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 def parse(self, dbfile): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 try: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 fp = open(dbfile) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 except IOError: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 data = fp.readlines() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 fp.close() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 for d in data: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 d = d[:-1] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 if not d or d[0] == '#': continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 pat = self.parseline(d) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 self.rawdata.append(pat) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 def save(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 fp = open(self.filename, 'w') |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
53 self.savedata(fp, self.rawdata) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 self.modified = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 def add(self, value): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
57 if len(value) == 1: |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 value = value + ('',) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 self.rawdata.append(value) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 self.rebuild1(value) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 self.modified = 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 def delete(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 key = value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 for i in range(len(self.rawdata)): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
66 if self.rawdata[i][0] == key: |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 del self.rawdata[i] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 self.unrebuild1(i, key) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 self.modified = 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 print 'Not found!', key |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 def getall(self): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
74 return map(lambda x: x[0], self.rawdata) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 def get(self, value): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
77 for src, dst in self.rawdata: |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 if src == value: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
79 return src, dst |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 print 'Not found!', value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 def is_modified(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 return self.modified |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 class IncMatcher(Matcher): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 """Include filename database and matching engine""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 def rebuild(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 self.idict = {} |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 self.edict = {} |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 for v in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 self.rebuild1(v) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
94 def parseline(self, line): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
95 try: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
96 data = eval(line) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
97 except: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
98 raise SyntaxError, line |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
99 if type(data) <> type(()) or len(data) not in (1,2): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
100 raise SyntaxError, line |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
101 if len(data) == 1: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
102 data = data + ('',) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
103 return data |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
104 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
105 def savedata(self, fp, data): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
106 for d in self.rawdata: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
107 fp.write(`d`+'\n') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
108 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
109 def rebuild1(self, (src, dst)): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
110 if dst == '': |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
111 dst = src |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
112 if dst == None: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
113 self.edict[src] = None |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
114 else: |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 self.idict[src] = dst |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
117 def unrebuild1(self, num, src): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
118 if self.idict.has_key(src): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 del self.idict[src] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 del self.edict[src] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
123 def match(self, patharg): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
124 removed = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 # First check the include directory |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 path = patharg |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 while 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
128 if self.idict.has_key(path): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
129 # We know of this path (or initial piece of path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
130 dstpath = self.idict[path] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 # We do want it distributed. Tack on the tail. |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 while removed: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
133 dstpath = os.path.join(dstpath, removed[0]) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
134 removed = removed[1:] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
135 # Finally, if the resultant string ends in a separator |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
136 # tack on our input filename |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
137 if dstpath[-1] == os.sep: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
138 dir, file = os.path.split(path) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
139 dstpath = os.path.join(dstpath, file) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
140 return dstpath |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
141 path, lastcomp = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
142 if not path: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
143 break |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
144 removed[0:0] = [lastcomp] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
145 # Next check the exclude directory |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
146 path = patharg |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
147 while 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
148 if self.edict.has_key(path): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
149 return '' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
150 path, lastcomp = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
151 if not path: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
152 break |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
153 removed[0:0] = [lastcomp] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
154 return None |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
155 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
156 def checksourcetree(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 rv = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
158 for name in self.idict.keys(): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 if not os.path.exists(name): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
160 rv.append(name) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
161 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
163 class ExcMatcher(Matcher): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 """Exclude pattern database and matching engine""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
165 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 def rebuild(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 self.relist = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 for v in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 self.rebuild1(v) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
171 def parseline(self, data): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
172 return (data, None) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
173 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
174 def savedata(self, fp, data): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
175 for d in self.rawdata: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
176 fp.write(d[0]+'\n') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
177 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
178 def rebuild1(self, (src, dst)): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
179 pat = fnmatch.translate(src) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
180 self.relist.append(regex.compile(pat)) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
181 |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
182 def unrebuild1(self, num, src): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
183 del self.relist[num] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
185 def match(self, path): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
186 comps = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
187 file = comps[-1] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
188 for pat in self.relist: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
189 if pat and pat.match(file) == len(file): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
190 return 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
191 return 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
192 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
193 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
194 class Main: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
195 """The main program glueing it all together""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
196 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
197 def __init__(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
198 InitUI() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
199 fss, ok = macfs.GetDirectory('Source directory:') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
200 if not ok: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
201 sys.exit(0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 os.chdir(fss.as_pathname()) |
|
4473
55fe64c21145
Different default location for distribution templates
Jack Jansen <jack.jansen@cwi.nl>
parents:
4168
diff
changeset
|
203 if not os.path.isdir(':Mac:Distributions'): |
|
55fe64c21145
Different default location for distribution templates
Jack Jansen <jack.jansen@cwi.nl>
parents:
4168
diff
changeset
|
204 os.mkdir(':Mac:Distributions') |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
205 typedist = GetType() |
|
4473
55fe64c21145
Different default location for distribution templates
Jack Jansen <jack.jansen@cwi.nl>
parents:
4168
diff
changeset
|
206 self.inc = IncMatcher(':Mac:Distributions:%s.include'%typedist) |
|
55fe64c21145
Different default location for distribution templates
Jack Jansen <jack.jansen@cwi.nl>
parents:
4168
diff
changeset
|
207 self.exc = ExcMatcher(':Mac:Distributions:%s.exclude'%typedist) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 self.ui = MkDistrUI(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
209 self.ui.mainloop() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
210 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
211 def check(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 return self.checkdir(':', 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
213 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
214 def checkdir(self, path, istop): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
215 files = os.listdir(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
216 rv = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
217 todo = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
218 for f in files: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
219 if self.exc.match(f): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
220 continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
221 fullname = os.path.join(path, f) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
222 if self.inc.match(fullname) == None: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
223 if os.path.isdir(fullname): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
224 todo.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 rv.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
227 for d in todo: |
| 5621 | 228 if len(rv) > 500: |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
229 if istop: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
230 rv.append('... and more ...') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
232 rv = rv + self.checkdir(d, 0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
234 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 def run(self, destprefix): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
236 missing = self.inc.checksourcetree() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
237 if missing: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
238 print '==== Missing source files ====' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
239 for i in missing: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
240 print i |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
241 print '==== Fix and retry ====' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
242 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
243 if not self.rundir(':', destprefix, 0): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
244 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
245 self.rundir(':', destprefix, 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
246 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
247 def rundir(self, path, destprefix, doit): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
248 files = os.listdir(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
249 todo = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
250 rv = 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
251 for f in files: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
252 if self.exc.match(f): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
253 continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
254 fullname = os.path.join(path, f) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
255 if os.path.isdir(fullname): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
256 todo.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
257 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
258 dest = self.inc.match(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
259 if dest == None: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
260 print 'Not yet resolved:', fullname |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
261 rv = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
262 if dest: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
263 if doit: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
264 print 'COPY ', fullname |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
265 print ' -> ', os.path.join(destprefix, dest) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
266 macostools.copy(fullname, os.path.join(destprefix, dest), 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
267 for d in todo: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
268 if not self.rundir(d, destprefix, doit): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 rv = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
270 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
272 def save(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
273 self.inc.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
274 self.exc.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
275 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
276 def is_modified(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
277 return self.inc.is_modified() or self.exc.is_modified() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
278 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
279 if __name__ == '__main__': |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
280 Main() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
281 |
