btrbk: allow compressors not to have a compression level

Not all compressors support compression level (option `-#`): print a
warning if compress_level is set, and ignore its value for such
compressors.
pull/504/head
Axel Burri 2022-11-15 23:06:21 +01:00
parent af2d7b2c99
commit af86dc8c52
1 changed files with 6 additions and 4 deletions

10
btrbk
View File

@ -719,15 +719,17 @@ sub compress_cmd_text($;$)
if((not $decompress) && defined($def->{level}) && ($def->{level} ne "default")) {
my $level = $def->{level};
if($level < $cc->{level_min}) {
if(!defined($cc->{level_min})) {
WARN_ONCE "Compression level is not supported for '$cc->{name}', ignoring";
$level = undef;
} elsif($level < $cc->{level_min}) {
WARN_ONCE "Compression level capped to minimum for '$cc->{name}': $cc->{level_min}";
$level = $cc->{level_min};
}
if($level > $cc->{level_max}) {
} elsif($level > $cc->{level_max}) {
WARN_ONCE "Compression level capped to maximum for '$cc->{name}': $cc->{level_max}";
$level = $cc->{level_max};
}
push @cmd, '-' . $level;
push @cmd, '-' . $level if(defined($level));
}
if(defined($def->{threads}) && ($def->{threads} ne "default")) {
my $thread_opt = $cc->{threads};