sanoid
sanoid copied to clipboard
implement --dryrun argument
This is a little messy: that includes a lot of whitespace change, but I couldn't really figure out a better way to do it, in general.
(A better way would have been something like:
if ($args{'dryrun'}) return 0;
... but the functions are generally too long for that kind of hack to
work at all. Alternatively, I figured it might be good to have a
generic system()
wrapper, but I haven't dug deep enough in the code
to see if it's always called the same way, or if that would make
sense.)
This doesn't block all system()
calls either: only those who
actually make changes. SSH setup commands and commands that just probe
the snapshot lists are let through, so this is not completely a
--noop
flag (hence the --dryrun
instead), because it
actually does some things still.
I have only grepped for system()
and haven't audited the entire
source code to see if other side effects (e.g. creating files) also
exist.
Disclaimer: this patch was briefly tested on my home system, and my level of familiarity with sanoid is "beginner".
Closes: #11
i didn't test this very much, just a few trial runs. this is mostly a proof-of-concept I guess, looking for feedback whether this is a desirable feature at all.