From b7e0a51751ac95138095969121c612f34047e52d Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Thu, 15 Sep 2011 13:24:48 +0200 Subject: [PATCH] Add command line option --dry-run And set the [general]dry-run=True setting if yes. It is not used yet. Also set ui.dryrun to True so we can output what WE WOULD HAVE DONE in dryrun mode. Signed-off-by: Sebastian Spaeth --- offlineimap/init.py | 13 +++++++++++++ offlineimap/ui/UIBase.py | 2 ++ 2 files changed, 15 insertions(+) diff --git a/offlineimap/init.py b/offlineimap/init.py index 51d535d..d381a65 100644 --- a/offlineimap/init.py +++ b/offlineimap/init.py @@ -52,6 +52,13 @@ class OfflineImap: description="%s.\n\n%s" % (offlineimap.__copyright__, offlineimap.__license__)) + parser.add_option("--dry-run", + action="store_true", dest="dryrun", + default=False, + help="Do not actually modify any store but check and print " + "what synchronization actions would be taken if a sync would be" + " performed.") + parser.add_option("-1", action="store_true", dest="singlethreading", default=False, @@ -201,6 +208,12 @@ class OfflineImap: logging.warning('Using old interface name, consider using one ' 'of %s' % ', '.join(UI_LIST.keys())) if options.diagnostics: ui_type = 'basic' # enforce basic UI for --info + + #dry-run? Set [general]dry-run=True + if options.dryrun: + dryrun = config.set('general','dry-run', "True") + config.set_if_not_exists('general','dry-run','False') + try: # create the ui class self.ui = UI_LIST[ui_type.lower()](config) diff --git a/offlineimap/ui/UIBase.py b/offlineimap/ui/UIBase.py index a8aeeaf..d716968 100644 --- a/offlineimap/ui/UIBase.py +++ b/offlineimap/ui/UIBase.py @@ -48,6 +48,8 @@ def getglobalui(): class UIBase(object): def __init__(self, config, loglevel = logging.INFO): self.config = config + # Is this a 'dryrun'? + self.dryrun = config.getboolean('general', 'dry-run') self.debuglist = [] """list of debugtypes we are supposed to log""" self.debugmessages = {}