btrbk: add config_key_lru comfort function

pull/459/head
Axel Burri 2022-02-06 16:26:29 +01:00
parent 68d5fe3f55
commit db7082b4bc
1 changed files with 18 additions and 11 deletions

29
btrbk
View File

@ -2023,9 +2023,7 @@ sub system_realpath($)
{
my $vol = shift // die;
my $path = $vol->{PATH} // die;
my $compat = (($vol->{HOST} && config_key($vol, "compat_remote")) //
config_key($vol, "compat_local") //
config_key($vol, "compat")) // "" eq "busybox";
my $compat = config_key_lru($vol, "compat", "busybox");
my @options = ("-v"); # report error messages
push @options, "-e" unless($compat); # all components must exist (not available in busybox!)
push @options, "-f" if($compat); # all but the last component must exist.
@ -2837,14 +2835,7 @@ sub vinfo_cmd($$@)
my $cmd = shift || die;
my @cmd_args = @_;
my $ret;
my $backend;
if(defined($vinfo->{HOST})) {
$backend //= config_key($vinfo, "backend_remote");
} else {
$backend //= config_key($vinfo, "backend_local_user") if($>); # $EUID, $EFFECTIVE_USER_ID
$backend //= config_key($vinfo, "backend_local");
}
$backend //= config_key($vinfo, "backend") // die;
my $backend = config_key_lru($vinfo, "backend") // die;
my $cmd_mapped = $backend_cmd_map{$backend}{$cmd};
if(defined($cmd_mapped)) {
TRACE "vinfo_cmd: found mapping for backend=$backend cmd=\"$cmd\": " . join(' ', @$cmd_mapped) if($do_trace);
@ -3932,6 +3923,22 @@ sub config_key($$;$)
}
sub config_key_lru($$;$) {
my $vinfo = shift || die;
my $key = shift || die;
my $match = shift;
my $retval;
if(defined($vinfo->{HOST})) {
$retval //= config_key($vinfo, $key . "_remote", $match);
} else {
$retval //= config_key($vinfo, $key . "_local_user", $match) if($>); # $EUID, $EFFECTIVE_USER_ID
$retval //= config_key($vinfo, $key . "_local", $match);
}
$retval //= config_key($vinfo, $key, $match);
return $retval;
}
sub config_preserve_hash($$;@)
{
my $config = shift || die;