Fix rm-hooks in case no post-remove hook was specified.
[dss.git] / dss.ggo
diff --git a/dss.ggo b/dss.ggo
index bca3fff2d5764a2f934e9d842c2ea9142052e3fa..9c687f42d575606cdb852bf7b829e4def7d64edf 100644 (file)
--- a/dss.ggo
+++ b/dss.ggo
@@ -3,7 +3,7 @@
 # Licensed under the GPL v2. For licencing details see COPYING.
 
 package "dss"
-version "0.1.1"
+version "0.1.2"
 purpose "the dyadic snapshot scheduler
 
 dss creates hardlink-based snapshots of a given directory on a remote
@@ -195,8 +195,12 @@ string typestr="option"
 optional
 multiple
 details="
-       These option may be given multiple times. The arguments passed
-       to that option are passed verbatim to the rsync command.
+       This option may be given multiple times. The given argument is
+       passed verbatim to the rsync command. Note that in order to use
+       rsync options that require an argument, you have to specify the
+       option and its argument as separate --rsync-options, like this:
+
+               --rsync-option --exclude --rsync-option /proc
 "
 
 ###################
@@ -273,6 +277,37 @@ 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. If this
+       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. 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"