def _loadnewui(srcui, args): newui = srcui.__class__() for a in ['fin', 'fout', 'ferr', 'environ']: setattr(newui, a, getattr(srcui, a)) if util.safehasattr(srcui, '_csystem'): newui._csystem = srcui._csystem # internal config: extensions.chgserver newui.setconfig('extensions', 'chgserver', srcui.config('extensions', 'chgserver'), '--config') # command line args args = args[:] dispatch._parseconfig(newui, dispatch._earlygetopt(['--config'], args)) # stolen from tortoisehg.util.copydynamicconfig() for section, name, value in srcui.walkconfig(): source = srcui.configsource(section, name) if ':' in source or source == '--config': # path:line or command line continue if source == 'none': # ui.configsource returns 'none' by default source = '' newui.setconfig(section, name, value, source) # load wd and repo config, copied from dispatch.py cwds = dispatch._earlygetopt(['--cwd'], args) cwd = cwds and os.path.realpath(cwds[-1]) or None rpath = dispatch._earlygetopt(["-R", "--repository", "--repo"], args) path, newlui = dispatch._getlocal(newui, rpath, wd=cwd) return (newui, newlui)
def parseconfigopts(ui, args): """Pop the --config options from the command line and apply them >>> u = uimod.ui() >>> args = ['log', '--config', 'extensions.mq=!'] >>> parseconfigopts(u, args) [('extensions', 'mq', '!')] >>> args ['log'] >>> u.config('extensions', 'mq') '!' """ config = dispatchmod._earlygetopt(['--config'], args) return dispatchmod._parseconfig(ui, config)
def parseconfigopts(ui, args): """Pop the --config options from the command line and apply them >>> u = ui.ui() >>> args = ['log', '--config', 'extensions.mq=!'] >>> parseconfigopts(u, args) [('extensions', 'mq', '!')] >>> args ['log'] >>> u.config('extensions', 'mq') '!' """ config = dispatchmod._earlygetopt(['--config'], args) return dispatchmod._parseconfig(ui, config)
from mercurial import ui, dispatch, error testui = ui.ui() parsed = dispatch._parseconfig(testui, [ 'values.string=string value', 'values.bool1=true', 'values.bool2=false', 'lists.list1=foo', 'lists.list2=foo bar baz', 'lists.list3=alice, bob', 'lists.list4=foo bar baz alice, bob', 'lists.list5=abc d"ef"g "hij def"', 'lists.list6="hello world", "how are you?"', 'lists.list7=Do"Not"Separate', 'lists.list8="Do"Separate', 'lists.list9="Do\\"NotSeparate"', 'lists.list10=string "with extraneous" quotation mark"', 'lists.list11=x, y', 'lists.list12="x", "y"', 'lists.list13=""" key = "x", "y" """', 'lists.list14=,,,, ', 'lists.list15=" just with starting quotation', 'lists.list16="longer quotation" with "no ending quotation', 'lists.list17=this is \\" "not a quotation mark"', 'lists.list18=\n \n\nding\ndong', ]) print repr(testui.configitems('values')) print repr(testui.configitems('lists')) print "---" print repr(testui.config('values', 'string'))
#!/usr/bin/env python from mercurial import ui, dispatch, error testui = ui.ui() parsed = dispatch._parseconfig(testui, [ 'values.string=string value', 'values.bool1=true', 'values.bool2=false', 'lists.list1=foo', 'lists.list2=foo bar baz', 'lists.list3=alice, bob', 'lists.list4=foo bar baz alice, bob', ]) print repr(testui.configitems('values')) print repr(testui.configitems('lists')) print "---" print repr(testui.config('values', 'string')) print repr(testui.config('values', 'bool1')) print repr(testui.config('values', 'bool2')) print repr(testui.config('values', 'unknown')) print "---" try: print repr(testui.configbool('values', 'string')) except error.ConfigError, inst: print inst print repr(testui.configbool('values', 'bool1')) print repr(testui.configbool('values', 'bool2')) print repr(testui.configbool('values', 'bool2', True)) print repr(testui.configbool('values', 'unknown'))