mirror of https://github.com/digint/btrbk
btrbk: add "noauto" configuration option
parent
ae004e48fd
commit
6e7d649588
33
btrbk
33
btrbk
|
@ -121,6 +121,7 @@ my %config_options = (
|
||||||
kdf_keygen => { default => "once", accept => [ "once", "each" ] },
|
kdf_keygen => { default => "once", accept => [ "once", "each" ] },
|
||||||
|
|
||||||
group => { default => undef, accept_regexp => qr/^$group_match(\s*,\s*$group_match)*$/, allow_multiple => 1, split => qr/\s*,\s*/ },
|
group => { default => undef, accept_regexp => qr/^$group_match(\s*,\s*$group_match)*$/, allow_multiple => 1, split => qr/\s*,\s*/ },
|
||||||
|
noauto => { default => undef, accept => [ "yes", "no" ] },
|
||||||
|
|
||||||
backend => { default => "btrfs-progs", accept => [ "btrfs-progs", "btrfs-progs-btrbk", "btrfs-progs-sudo" ] },
|
backend => { default => "btrfs-progs", accept => [ "btrfs-progs", "btrfs-progs-btrbk", "btrfs-progs-sudo" ] },
|
||||||
backend_local => { default => undef, accept => [ "no", "btrfs-progs", "btrfs-progs-btrbk", "btrfs-progs-sudo" ] },
|
backend_local => { default => undef, accept => [ "no", "btrfs-progs", "btrfs-progs-btrbk", "btrfs-progs-sudo" ] },
|
||||||
|
@ -5376,9 +5377,9 @@ MAIN:
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# filter subvolumes matching command line arguments
|
# filter subvolumes matching command line arguments, handle noauto option
|
||||||
#
|
#
|
||||||
if(($action_run || $action_clean || $action_resolve || $action_usage || $action_list || $action_config_print) && scalar(@filter_args))
|
if(scalar @filter_args)
|
||||||
{
|
{
|
||||||
my %match;
|
my %match;
|
||||||
foreach my $sroot (vinfo_subsection($config, 'volume', 1)) {
|
foreach my $sroot (vinfo_subsection($config, 'volume', 1)) {
|
||||||
|
@ -5452,6 +5453,34 @@ MAIN:
|
||||||
}
|
}
|
||||||
$config->{CMDLINE_FILTER_LIST} = [ values %match ];
|
$config->{CMDLINE_FILTER_LIST} = [ values %match ];
|
||||||
}
|
}
|
||||||
|
elsif(not $action_config_print)
|
||||||
|
{
|
||||||
|
# no filter_args present, abort "noauto" contexts
|
||||||
|
if(config_key($config, "noauto")) {
|
||||||
|
WARN "Option \"noauto\" is set in root context, and no filter argument present, exiting";
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
foreach my $sroot (vinfo_subsection($config, 'volume')) {
|
||||||
|
if(config_key($sroot, "noauto")) {
|
||||||
|
ABORTED($sroot, "skip_noauto", 'option "noauto" is set');
|
||||||
|
DEBUG "Skipping volume \"$sroot->{PRINT}\": " . ABORTED_TEXT($sroot);
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
foreach my $svol (vinfo_subsection($sroot, 'subvolume')) {
|
||||||
|
if(config_key($svol, "noauto")) {
|
||||||
|
ABORTED($svol, "skip_noauto", 'option "noauto" is set');
|
||||||
|
DEBUG "Skipping subvolume \"$svol->{PRINT}\": " . ABORTED_TEXT($svol);
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
foreach my $droot (vinfo_subsection($svol, 'target')) {
|
||||||
|
if(config_key($droot, "noauto")) {
|
||||||
|
ABORTED($droot, "skip_noauto", 'option "noauto" is set');
|
||||||
|
DEBUG "Skipping target \"$droot->{PRINT}\": " . ABORTED_TEXT($droot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if($action_usage)
|
if($action_usage)
|
||||||
|
|
Loading…
Reference in New Issue