Add option '-k' for overriding config options

This commit is contained in:
Riccardo Murri 2008-01-03 04:13:04 +01:00
parent 08f22be8ea
commit 2985ddc61e
3 changed files with 32 additions and 2 deletions

View File

@ -373,6 +373,17 @@ cd offlineimap-x.y.z</ProgramListing>
will debug the threading model.
</para></listitem>
</varlistentry>
<varlistentry><term>-k [<replaceable>section</replaceable>:]<replaceable>option</replaceable>=<replaceable>value</replaceable>
</term>
<listitem><para> Override configuration file option. If
"section" is omitted, it defaults
to <property>general</property>. Any underscores "_" in
the section name are replaced with spaces: for instance,
to override option <property>autorefresh</property> in
the "[Account Personal]" section in the config file one
would use "-k Account_Personal:autorefresh=30".
</para></listitem>
</varlistentry>
<varlistentry><term>-l
<replaceable>filename</replaceable></term>
<listitem><para>

View File

@ -53,7 +53,7 @@ def startup(versionno):
sys.stdout.write(version.getcmdhelp() + "\n")
sys.exit(0)
for optlist in getopt(sys.argv[1:], 'P:1oqa:c:d:l:u:h')[0]:
for optlist in getopt(sys.argv[1:], 'P:1oqa:c:d:l:u:hk:')[0]:
options[optlist[0]] = optlist[1]
if options.has_key('-h'):
@ -79,6 +79,17 @@ def startup(versionno):
config.read(configfilename)
# override config values with option '-k'
for option in options.keys():
if option == '-k':
(key, value) = options['-k'].split('=', 1)
if ':' in key:
(secname, key) = key.split(':', 1)
section = secname.replace("_", " ")
else:
section = "general"
config.set(section, key, value)
ui = offlineimap.ui.detector.findUI(config, options.get('-u'))
UIBase.setglobalui(ui)

View File

@ -94,7 +94,15 @@ def getcmdhelp():
one else. The maildir option will enable debugging
for certain Maildir operations.
-o Run only once, ignoring any autorefresh setting in
-k [section:]option=value
Override configuration file option. If"section" is
omitted, it defaults to "general". Any underscores
"_" in the section name are replaced with spaces:
for instance, to override option "autorefresh" in
the "[Account Personal]" section in the config file
one would use "-k Account_Personal:autorefresh=30".
-o Run only once, ignoring any autorefresh setting in
the config file.
-q Run only quick synchronizations. Ignore any flag