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 = {}