Avoid busy loop on rsync exit status 12 or 13.
[dss.git] / dss.ggo
diff --git a/dss.ggo b/dss.ggo
index 099df4cd163765da66e2ba7eb1dca26789af1ed4..09e345d8db8f270de4182cda8d6033b236407724 100644 (file)
--- a/dss.ggo
+++ b/dss.ggo
@@ -1,9 +1,9 @@
-# Copyright (C) 2008 Andre Noll <maan@systemlinux.org>
+# Copyright (C) 2008-2009 Andre Noll <maan@systemlinux.org>
 #
 # Licensed under the GPL v2. For licencing details see COPYING.
 
 package "dss"
-version "0.1.2"
+version "0.1.3"
 purpose "the dyadic snapshot scheduler
 
 dss creates hardlink-based snapshots of a given directory on a remote
@@ -110,11 +110,17 @@ groupoption "prune" P
 "Remove redundant and outdated snapshots"
 group="command"
 details="
-       A snapshot is considered outdated if it belongs to an interval
-       greater than the maximum number of intervals. It is said to be
-       redundant if it belongs to an interval that already contains
-       more than the desired number of snapshots. This command gets
-       rid of such snapshots.
+       A snapshot is considered outdated if its interval number
+       is greater or equal than the specified number of unit
+       intervals. See the \"Intervals\" section below for the precise
+       definition of these terms.
+
+       A snapshot is said to be redundant if it belongs to an
+       interval that already contains more than the desired number
+       of snapshots.
+
+       The prune command gets rid of both outdated and redundant
+       snapshots.
 "
 
 groupoption "ls" L
@@ -188,6 +194,21 @@ details="
        dss.
 "
 
+option "no-resume" -
+#~~~~~~~~~~~~~~~~~~~
+"Do not try to resume from previous runs"
+flag off
+details = "
+       Starting from version 0.1.4, dss tries to resume from a
+       previously cancelled dss instance by default. It does so by
+       looking at the status of the most recently created snapshot. If
+       this snapshot status is incomplete, its directory is reused
+       as the destination directory for a subsequent rsync run.
+
+       The --no-resume option deactivates this feature so that a new
+       directory is always used as the rsync destination directory.
+"
+
 option "rsync-option" O
 #~~~~~~~~~~~~~~~~~~~~~~
 "Further rsync options"
@@ -277,6 +298,39 @@ details="
        store them in a database for further analysis.
 "
 
+option "pre-remove-hook" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"Executed before snapshot removal"
+string typestr="command"
+optional
+details="
+       Execute this command before removing a snapshot. The full
+       path to the snapshot about to be deleted is passed to the
+       command as the first argument. If the command returns with
+       a non-zero exit status, no snapshot is being removed and the
+       operation is retried later.
+
+       For example, one might want to execute a script that checks
+       whether the snapshot to be deleted is currently used by
+       another process, e.g. by a tape-based backup system that runs
+       concurrently to dss.
+
+       Another possible application of this is to record disk-usage
+       patterns before and after snapshot removal.
+"
+
+option "post-remove-hook" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"Executed after snapshot removal"
+string typestr="command"
+optional
+details="
+       Execute this after a snapshot has successfully been removed. As
+       for the pre-remove hook, the full path of the removed snapshot
+       is passed to the hook as the first argument. The exit code
+       of this hook is ignored.
+"
+
 option "exit-hook" e
 #~~~~~~~~~~~~~~~~~~~
 "Executed if run command exits"