Show More
@@ -276,10 +276,10 b' def demo(ui, repo, *args, **opts):' | |||||
276 | Show current, custom, or default keyword template maps and their |
|
276 | Show current, custom, or default keyword template maps and their | |
277 | expansions. |
|
277 | expansions. | |
278 |
|
278 | |||
279 |
Extend current configuration by specifying maps as arguments |
|
279 | Extend the current configuration by specifying maps as arguments | |
280 | optionally by reading from an additional hgrc file. |
|
280 | and using -f/--rcfile to source an external hgrc file. | |
281 |
|
281 | |||
282 | Override current keyword template maps with "default" option. |
|
282 | Use -d/--default to disable current configuration. | |
283 | ''' |
|
283 | ''' | |
284 | def demoitems(section, items): |
|
284 | def demoitems(section, items): | |
285 | ui.write('[%s]\n' % section) |
|
285 | ui.write('[%s]\n' % section) | |
@@ -287,40 +287,47 b' def demo(ui, repo, *args, **opts):' | |||||
287 | ui.write('%s = %s\n' % (k, v)) |
|
287 | ui.write('%s = %s\n' % (k, v)) | |
288 |
|
288 | |||
289 | msg = 'hg keyword config and expansion example' |
|
289 | msg = 'hg keyword config and expansion example' | |
290 | kwstatus = 'current' |
|
|||
291 | fn = 'demo.txt' |
|
290 | fn = 'demo.txt' | |
292 | branchname = 'demobranch' |
|
291 | branchname = 'demobranch' | |
293 | tmpdir = tempfile.mkdtemp('', 'kwdemo.') |
|
292 | tmpdir = tempfile.mkdtemp('', 'kwdemo.') | |
294 | ui.note(_('creating temporary repository at %s\n') % tmpdir) |
|
293 | ui.note(_('creating temporary repository at %s\n') % tmpdir) | |
295 | repo = localrepo.localrepository(ui, tmpdir, True) |
|
294 | repo = localrepo.localrepository(ui, tmpdir, True) | |
296 | ui.setconfig('keyword', fn, '') |
|
295 | ui.setconfig('keyword', fn, '') | |
|
296 | ||||
|
297 | uikwmaps = ui.configitems('keywordmaps') | |||
297 | if args or opts.get('rcfile'): |
|
298 | if args or opts.get('rcfile'): | |
298 | kwstatus = 'custom' |
|
299 | ui.status(_('\n\tconfiguration using custom keyword template maps\n')) | |
299 | if opts.get('rcfile'): |
|
300 | if uikwmaps: | |
300 | ui.readconfig(opts.get('rcfile')) |
|
301 | ui.status(_('\textending current template maps\n')) | |
301 | if opts.get('default'): |
|
302 | if opts.get('default') or not uikwmaps: | |
302 | kwstatus = 'default' |
|
303 | ui.status(_('\toverriding default template maps\n')) | |
|
304 | if opts.get('rcfile'): | |||
|
305 | ui.readconfig(opts.get('rcfile')) | |||
|
306 | if args: | |||
|
307 | # simulate hgrc parsing | |||
|
308 | rcmaps = ['[keywordmaps]\n'] + [a + '\n' for a in args] | |||
|
309 | fp = repo.opener('hgrc', 'w') | |||
|
310 | fp.writelines(rcmaps) | |||
|
311 | fp.close() | |||
|
312 | ui.readconfig(repo.join('hgrc')) | |||
|
313 | kwmaps = dict(ui.configitems('keywordmaps')) | |||
|
314 | elif opts.get('default'): | |||
|
315 | ui.status(_('\n\tconfiguration using default keyword template maps\n')) | |||
303 | kwmaps = kwtemplater.templates |
|
316 | kwmaps = kwtemplater.templates | |
304 |
if ui |
|
317 | if uikwmaps: | |
305 | # override maps from optional rcfile |
|
318 | ui.status(_('\tdisabling current template maps\n')) | |
306 | for k, v in kwmaps.iteritems(): |
|
319 | for k, v in kwmaps.iteritems(): | |
307 | ui.setconfig('keywordmaps', k, v) |
|
320 | ui.setconfig('keywordmaps', k, v) | |
308 |
el |
|
321 | else: | |
309 | # simulate hgrc parsing |
|
322 | ui.status(_('\n\tconfiguration using current keyword template maps\n')) | |
310 | rcmaps = ['[keywordmaps]\n'] + [a + '\n' for a in args] |
|
323 | kwmaps = dict(uikwmaps) or kwtemplater.templates | |
311 | fp = repo.opener('hgrc', 'w') |
|
324 | ||
312 | fp.writelines(rcmaps) |
|
|||
313 | fp.close() |
|
|||
314 | ui.readconfig(repo.join('hgrc')) |
|
|||
315 | if not opts.get('default'): |
|
|||
316 | kwmaps = dict(ui.configitems('keywordmaps')) or kwtemplater.templates |
|
|||
317 | uisetup(ui) |
|
325 | uisetup(ui) | |
318 | reposetup(ui, repo) |
|
326 | reposetup(ui, repo) | |
319 | for k, v in ui.configitems('extensions'): |
|
327 | for k, v in ui.configitems('extensions'): | |
320 | if k.endswith('keyword'): |
|
328 | if k.endswith('keyword'): | |
321 | extension = '%s = %s' % (k, v) |
|
329 | extension = '%s = %s' % (k, v) | |
322 | break |
|
330 | break | |
323 | ui.status(_('\n\tconfig using %s keyword template maps\n') % kwstatus) |
|
|||
324 | ui.write('[extensions]\n%s\n' % extension) |
|
331 | ui.write('[extensions]\n%s\n' % extension) | |
325 | demoitems('keyword', ui.configitems('keyword')) |
|
332 | demoitems('keyword', ui.configitems('keyword')) | |
326 | demoitems('keywordmaps', kwmaps.iteritems()) |
|
333 | demoitems('keywordmaps', kwmaps.iteritems()) | |
@@ -328,7 +335,7 b' def demo(ui, repo, *args, **opts):' | |||||
328 | repo.wopener(fn, 'w').write(keywords) |
|
335 | repo.wopener(fn, 'w').write(keywords) | |
329 | repo.add([fn]) |
|
336 | repo.add([fn]) | |
330 | path = repo.wjoin(fn) |
|
337 | path = repo.wjoin(fn) | |
331 |
ui.note(_('\n |
|
338 | ui.note(_('\nkeywords written to %s:\n') % path) | |
332 | ui.note(keywords) |
|
339 | ui.note(keywords) | |
333 | ui.note('\nhg -R "%s" branch "%s"\n' % (tmpdir, branchname)) |
|
340 | ui.note('\nhg -R "%s" branch "%s"\n' % (tmpdir, branchname)) | |
334 | # silence branch command if not verbose |
|
341 | # silence branch command if not verbose | |
@@ -342,8 +349,7 b' def demo(ui, repo, *args, **opts):' | |||||
342 | ui.note(_('unhooked all commit hooks\n')) |
|
349 | ui.note(_('unhooked all commit hooks\n')) | |
343 | ui.note('hg -R "%s" ci -m "%s"\n' % (tmpdir, msg)) |
|
350 | ui.note('hg -R "%s" ci -m "%s"\n' % (tmpdir, msg)) | |
344 | repo.commit(text=msg) |
|
351 | repo.commit(text=msg) | |
345 | fmt = ui.verbose and ' in %s' % path or '' |
|
352 | ui.status(_('\n\tkeywords expanded\n')) | |
346 | ui.status(_('\n\t%s keywords expanded%s\n') % (kwstatus, fmt)) |
|
|||
347 | ui.write(repo.wread(fn)) |
|
353 | ui.write(repo.wread(fn)) | |
348 | ui.debug(_('\nremoving temporary repository %s\n') % tmpdir) |
|
354 | ui.debug(_('\nremoving temporary repository %s\n') % tmpdir) | |
349 | shutil.rmtree(tmpdir, ignore_errors=True) |
|
355 | shutil.rmtree(tmpdir, ignore_errors=True) |
General Comments 0
You need to be logged in to leave comments.
Login now