Mercurial > hg > MakeItSo
comparison makeitso/makeitso.py @ 101:80a57bf2b7f4
fixed a few problems
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Tue, 11 Jan 2011 14:23:17 -0800 |
| parents | b6a46332cced |
| children | a6aff990985b |
comparison
equal
deleted
inserted
replaced
| 100:b54898f7d8a9 | 101:80a57bf2b7f4 |
|---|---|
| 163 if missing: | 163 if missing: |
| 164 if self.interactive: | 164 if self.interactive: |
| 165 vars.update(self.read_variables(missing)) | 165 vars.update(self.read_variables(missing)) |
| 166 else: | 166 else: |
| 167 raise MissingVariablesException(missing) | 167 raise MissingVariablesException(missing) |
| 168 | 168 |
| 169 | |
| 170 def variables(self): | 169 def variables(self): |
| 171 """return the variables needed for a template""" | 170 """return the variables needed for a template""" |
| 172 return self.missing() | 171 return self.missing() |
| 173 | 172 |
| 174 def substitute(self, **variables): | 173 def substitute(self, **variables): |
| 206 ContentTemplate.__init__(self, content, name=uri, | 205 ContentTemplate.__init__(self, content, name=uri, |
| 207 interactive=interactive, | 206 interactive=interactive, |
| 208 variables=variables) | 207 variables=variables) |
| 209 | 208 |
| 210 def substitute(self, variables, output=None): | 209 def substitute(self, variables, output=None): |
| 210 | |
| 211 # interpolate | |
| 211 content = ContentTemplate.substitute(self, **variables) | 212 content = ContentTemplate.substitute(self, **variables) |
| 212 | 213 |
| 213 # write output | 214 # write output |
| 214 output = output or sys.stdout | 215 output = output or sys.stdout |
| 215 if isinstance(output, basestring): | 216 if isinstance(output, basestring): |
| 290 for dirname, dirnames, filenames in os.walk(self.name): | 291 for dirname, dirnames, filenames in os.walk(self.name): |
| 291 | 292 |
| 292 # interpolate directory names | 293 # interpolate directory names |
| 293 for d in dirnames: | 294 for d in dirnames: |
| 294 path = os.path.join(dirname, d) | 295 path = os.path.join(dirname, d) |
| 295 interpolated = ContentTemplate(path).substitute(**variables) | 296 interpolated = ContentTemplate(path).substitute(**vars) |
| 296 target = os.path.join(output, interpolated.split(self.name, 1)[-1].strip(os.path.sep)) | 297 target = os.path.join(output, interpolated.split(self.name, 1)[-1].strip(os.path.sep)) |
| 297 | 298 |
| 298 if os.path.exists(target): | 299 if os.path.exists(target): |
| 299 # ensure its a directory | 300 # ensure its a directory |
| 300 # TODO: check this first before interpolation is in progress | 301 # TODO: check this first before interpolation is in progress |
| 305 # interpolate files | 306 # interpolate files |
| 306 for filename in filenames: | 307 for filename in filenames: |
| 307 | 308 |
| 308 # interpolate filenames | 309 # interpolate filenames |
| 309 path = os.path.join(dirname, filename) | 310 path = os.path.join(dirname, filename) |
| 310 interpolated = ContentTemplate(path).substitute(**variables) | 311 interpolated = ContentTemplate(path).substitute(**vars) |
| 311 target = os.path.join(output, interpolated.split(self.name, 1)[-1].strip(os.path.sep)) | 312 target = os.path.join(output, interpolated.split(self.name, 1)[-1].strip(os.path.sep)) |
| 312 | 313 |
| 313 # interpolate their contents | 314 # interpolate their contents |
| 314 if os.path.exists(target): | 315 if os.path.exists(target): |
| 315 # ensure its a directory | 316 # ensure its a directory |
| 316 assert os.path.isfile(target), "Can't substitute a file on top of a directory" | 317 assert os.path.isfile(target), "Can't substitute a file on top of a directory" |
| 317 template = URITemplate(path, interactive=False) | 318 template = URITemplate(path, interactive=False) |
| 318 template.substitute(variables, target) | 319 template.substitute(vars, target) |
| 319 | 320 |
| 320 | 321 |
| 321 class PolyTemplate(ContentTemplate): | 322 class PolyTemplate(ContentTemplate): |
| 322 """template for several files/directories""" | 323 """template for several files/directories""" |
| 323 | 324 |
