X-Git-Url: https://git.sthu.org/?p=sitarba.git;a=blobdiff_plain;f=sitarba;h=160f09b7f165bed39f915b78c00cd6d3ca7d65ee;hp=b67925fd27435b8c236de566f5bfc58f175ca8c2;hb=4def838044cecdd7f72a94a2e27e6b6493996e38;hpb=766966681b508aa0455fa1c538346fce422256bb diff --git a/sitarba b/sitarba index b67925f..160f09b 100755 --- a/sitarba +++ b/sitarba @@ -15,6 +15,11 @@ import logging Modes = ["full", "incr", "diff"] + +class Options: + dryrun = False + + class Epoch: units = { @@ -498,6 +503,9 @@ class BackupManager: if since != None: logging.debug("Making backup relative to " + since.ctime()) + if Options.dryrun: + return + yesno = self.ask_user_yesno("Proceed? [Y, n] ") if yesno == "n": return @@ -507,12 +515,12 @@ class BackupManager: dirname = Backup.getDirName(now, epoch, mode) tmpdirname = dirname + ("-%x" % (random.random()*2e16) ) targetdir = os.path.join(basedir, tmpdirname) - os.mkdir( targetdir ) + os.mkdir(targetdir) # Add file logger logfile = logging.getLogger("backuplog") - fil = logging.FileHandler( os.path.join(targetdir, "log") ) + fil = logging.FileHandler(os.path.join(targetdir, "log")) fil.setLevel(logging.DEBUG) logfile.addHandler(fil) @@ -579,6 +587,9 @@ class BackupManager: logging.info("No stale/outdated entries to remove.") return + if Options.dryrun: + return + basedir = self.conf.backupdir yesno = self.ask_user_yesno("Remove entries marked by '*'? [y, N] ") if yesno == "y": @@ -617,6 +628,7 @@ def printUsage(): print(" -e, --epoch EPOCH force to create backup for given epoch, which") print(" can be 'sporadic' or one of the configured epochs") print(" -m, --mode MODE override mode: full, diff, or incr") + print(" -n, --dry-run don't do anything, just tell what would be done") print(" -v, --verbose be more verbose and interact with user") print(" --verbosity LEVEL set verbosity to LEVEL, which can be") print(" error, warning, info, debug") @@ -686,6 +698,9 @@ if __name__ == "__main__": logging.error("Unknown mode '" + mode + "'.") exit(1) + elif opt in ["-n", "--dry-run"]: + Options.dryrun = True + elif opt in ["-e", "--epoch"]: i += 1 epoch = sys.argv[i]