Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/MkDistr.py @ 3720:b341def4eef8 legacy-trunk
Ignore latex intermediate products.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 26 Jun 1996 19:30:01 +0000 |
| parents | 94835b3edf3e |
| children | 74b8aa7f1114 |
| 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 # The distribution type is signalled by a letter. The currently |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 # defined letters are: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 # p PPC normal distribution |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 # P PPC development distribution |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 # m 68K normal distribution |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 # M 68K development distribution |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 # The exclude file signals files to always exclude, |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 # The pattern file records are of the form |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 # ('pm', '*.c') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 # This excludes all files ending in .c for normal distributions. |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 # 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
|
17 # Records are of the form |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 # ('pPmM', 'Lib') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 # This includes the Lib dir in all distributions |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 # ('pPmM', 'Tools:bgen:AE:AppleEvents.py', 'Lib:MacToolbox:AppleEvents.py') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 # This includes the specified file, putting it in the given place. |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 from MkDistr_ui import * |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 import fnmatch |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 import regex |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 import os |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 import sys |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 import macfs |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 import macostools |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 SyntaxError='Include/exclude file syntax error' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 class Matcher: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 """Include/exclude database, common code""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 def __init__(self, type, filename): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 self.type = type |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 self.filename = filename |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 self.rawdata = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 self.parse(filename) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 self.rawdata.sort() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 self.rebuild() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 self.modified = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 def parse(self, dbfile): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 try: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 fp = open(dbfile) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 except IOError: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 data = fp.readlines() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 fp.close() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 for d in data: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 d = d[:-1] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 if not d or d[0] == '#': continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 pat = self.parseline(d) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 self.rawdata.append(pat) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 def parseline(self, line): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 try: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 data = eval(line) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 except: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 raise SyntaxError, line |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 if type(data) <> type(()) or len(data) not in (2,3): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 raise SyntaxError, line |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 if len(data) == 2: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 data = data + ('',) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 return data |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 def save(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 fp = open(self.filename, 'w') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 for d in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 fp.write(`d`+'\n') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 self.modified = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 def add(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 if len(value) == 2: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 value = value + ('',) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 self.rawdata.append(value) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 self.rebuild1(value) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 self.modified = 1 |
|
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 delete(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 key = value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 for i in range(len(self.rawdata)): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 if self.rawdata[i][1] == key: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 del self.rawdata[i] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 self.unrebuild1(i, key) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 self.modified = 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 print 'Not found!', key |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 def getall(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 return map(lambda x: x[1], self.rawdata) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
95 def get(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 for t, src, dst in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 if src == value: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 return t, src, dst |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 print 'Not found!', value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 def is_modified(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 return self.modified |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 class IncMatcher(Matcher): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 """Include filename database and matching engine""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 def rebuild(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 self.idict = {} |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 self.edict = {} |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 for v in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
111 self.rebuild1(v) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
112 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
113 def rebuild1(self, (tp, src, dst)): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 if self.type in tp: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 if dst == '': |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 dst = src |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
117 self.idict[src] = dst |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
118 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 self.edict[src] = '' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 def unrebuild1(self, num, src): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 if self.idict.has_key(src): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
123 del self.idict[src] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
124 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 del self.edict[src] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 def match(self, patharg): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
128 removed = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
129 # First check the include directory |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
130 path = patharg |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 while 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 if self.idict.has_key(path): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
133 # 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
|
134 dstpath = self.idict[path] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
135 # 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
|
136 while removed: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
137 dstpath = os.path.join(dstpath, removed[0]) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
138 removed = removed[1:] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
139 # 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
|
140 # tack on our input filename |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
141 if dstpath[-1] == os.sep: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
142 dir, file = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
143 dstpath = os.path.join(dstpath, path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
144 return dstpath |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
145 path, lastcomp = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
146 if not path: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
147 break |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
148 removed[0:0] = [lastcomp] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
149 # Next check the exclude directory |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
150 path = patharg |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
151 while 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
152 if self.edict.has_key(path): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
153 return '' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
154 path, lastcomp = os.path.split(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
155 if not path: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
156 break |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 removed[0:0] = [lastcomp] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
158 return None |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
160 def checksourcetree(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
161 rv = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 for name in self.idict.keys(): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
163 if not os.path.exists(name): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 rv.append(name) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
165 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 class ExcMatcher(Matcher): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 """Exclude pattern database and matching engine""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 def rebuild(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 self.relist = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
172 for v in self.rawdata: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
173 self.rebuild1(v) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
175 def rebuild1(self, (tp, src, dst)): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
176 if self.type in tp: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
177 pat = fnmatch.translate(src) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
178 self.relist.append(regex.compile(pat)) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
179 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
180 self.relist.append(None) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
181 |
|
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()) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
203 self.typedist = GetType() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
204 print 'TYPE', self.typedist |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
205 self.inc = IncMatcher(self.typedist, '(MkDistr.include)') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
206 self.exc = ExcMatcher(self.typedist, '(MkDistr.exclude)') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
207 self.ui = MkDistrUI(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 self.ui.mainloop() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
209 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
210 def check(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
211 return self.checkdir(':', 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
213 def checkdir(self, path, istop): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
214 files = os.listdir(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
215 rv = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
216 todo = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
217 for f in files: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
218 if self.exc.match(f): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
219 continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
220 fullname = os.path.join(path, f) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
221 if self.inc.match(fullname) == None: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
222 if os.path.isdir(fullname): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
223 todo.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
224 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 rv.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 for d in todo: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
227 if len(rv) > 100: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
228 if istop: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
229 rv.append('... and more ...') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
230 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 rv = rv + self.checkdir(d, 0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
232 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
234 def run(self, destprefix): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 missing = self.inc.checksourcetree() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
236 if missing: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
237 print '==== Missing source files ====' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
238 for i in missing: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
239 print i |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
240 print '==== Fix and retry ====' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
241 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
242 if not self.rundir(':', destprefix, 0): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
243 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
244 self.rundir(':', destprefix, 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
245 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
246 def rundir(self, path, destprefix, doit): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
247 files = os.listdir(path) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
248 todo = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
249 rv = 1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
250 for f in files: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
251 if self.exc.match(f): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
252 continue |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
253 fullname = os.path.join(path, f) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
254 if os.path.isdir(fullname): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
255 todo.append(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
256 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
257 dest = self.inc.match(fullname) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
258 if dest == None: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
259 print 'Not yet resolved:', fullname |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
260 rv = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
261 if dest: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
262 if doit: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
263 print 'COPY ', fullname |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
264 print ' -> ', os.path.join(destprefix, dest) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
265 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
|
266 for d in todo: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
267 if not self.rundir(d, destprefix, doit): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
268 rv = 0 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 return rv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
270 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 def save(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
272 self.inc.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
273 self.exc.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
274 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
275 def is_modified(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
276 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
|
277 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
278 if __name__ == '__main__': |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
279 Main() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
280 |
