sanoid icon indicating copy to clipboard operation
sanoid copied to clipboard

implement --dryrun argument

Open anarcat opened this issue 2 years ago • 1 comments

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

anarcat avatar May 30 '22 16:05 anarcat

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.

anarcat avatar Mar 21 '23 18:03 anarcat