btrbk: run_cmd: cosmetics

pull/106/merge
Axel Burri 2016-08-24 15:54:05 +02:00
parent 5f530e47e5
commit b49ee61ecd
1 changed files with 17 additions and 17 deletions

34
btrbk
View File

@ -501,7 +501,7 @@ sub _assemble_cmd($;$)
# simple single-command # simple single-command
if(scalar(@$cmd_pipe) == 1) { if(scalar(@$cmd_pipe) == 1) {
$cmd = $cmd_pipe->[0]->{safe_cmd_text}; $cmd = $cmd_pipe->[0]->{cmd_text};
$cmd .= ' 2>&1' if($catch_stderr && $cmd_pipe->[0]->{catch_stderr}); $cmd .= ' 2>&1' if($catch_stderr && $cmd_pipe->[0]->{catch_stderr});
return $cmd; return $cmd;
} }
@ -511,12 +511,12 @@ sub _assemble_cmd($;$)
my $pipe = ""; my $pipe = "";
$cmd = "{ " if($catch_stderr); $cmd = "{ " if($catch_stderr);
foreach (@$cmd_pipe) { foreach (@$cmd_pipe) {
if($_->{safe_cmd_text} =~ /^>/) { if($_->{cmd_text} =~ /^>/) {
die unless($pipe); die unless($pipe);
$cmd .= ' ' . $_->{safe_cmd_text}; $cmd .= ' ' . $_->{cmd_text};
$pipe = undef; # this dies if it is not last command $pipe = undef; # this dies if it is not last command
} else { } else {
$cmd .= $pipe . $_->{safe_cmd_text}; $cmd .= $pipe . $_->{cmd_text};
$cmd .= ' 2>&3' if($catch_stderr && $_->{catch_stderr}); $cmd .= ' 2>&3' if($catch_stderr && $_->{catch_stderr});
$pipe = ' | '; $pipe = ' | ';
} }
@ -562,7 +562,7 @@ sub run_cmd(@)
foreach my $href (@cmd_pipe_in) foreach my $href (@cmd_pipe_in)
{ {
die if(defined($href->{safe_cmd_text})); die if(defined($href->{cmd_text}));
$catch_stderr = 1 if($href->{catch_stderr}); $catch_stderr = 1 if($href->{catch_stderr});
$filter_stderr = $href->{filter_stderr} if($href->{filter_stderr}); # NOTE: last filter wins! $filter_stderr = $href->{filter_stderr} if($href->{filter_stderr}); # NOTE: last filter wins!
@ -574,22 +574,22 @@ sub run_cmd(@)
if($href->{compress}) { if($href->{compress}) {
if($compressed && ($compression{$compressed->{key}}->{format} ne $compression{$href->{compress}->{key}}->{format})) { if($compressed && ($compression{$compressed->{key}}->{format} ne $compression{$href->{compress}->{key}}->{format})) {
push @cmd_pipe, { safe_cmd_text => decompress_cmd($compressed) }; push @cmd_pipe, { cmd_text => decompress_cmd($compressed) };
$compressed = undef; $compressed = undef;
} }
unless($compressed) { unless($compressed) {
push @cmd_pipe, { safe_cmd_text => compress_cmd($href->{compress}) }; push @cmd_pipe, { cmd_text => compress_cmd($href->{compress}) };
$compressed = $href->{compress}; $compressed = $href->{compress};
} }
} }
else { else {
if($href->{redirect_to_file}) { if($href->{redirect_to_file}) {
$href->{safe_cmd_text} = _safe_cmd([ '>', $href->{redirect_to_file} ], \@unsafe_cmd); $href->{cmd_text} = _safe_cmd([ '>', $href->{redirect_to_file} ], \@unsafe_cmd);
} }
elsif($href->{cmd}) { elsif($href->{cmd}) {
$href->{safe_cmd_text} = _safe_cmd($href->{cmd}, \@unsafe_cmd); $href->{cmd_text} = _safe_cmd($href->{cmd}, \@unsafe_cmd);
} }
return undef unless(defined($href->{safe_cmd_text})); return undef unless(defined($href->{cmd_text}));
if($href->{rsh}) { if($href->{rsh}) {
my @rsh_cmd_pipe = ( $href ); my @rsh_cmd_pipe = ( $href );
@ -597,39 +597,39 @@ sub run_cmd(@)
if($href->{rsh_compress_in}) { if($href->{rsh_compress_in}) {
if($compressed && ($compression{$compressed->{key}}->{format} ne $compression{$href->{rsh_compress_in}->{key}}->{format})) if($compressed && ($compression{$compressed->{key}}->{format} ne $compression{$href->{rsh_compress_in}->{key}}->{format}))
{ {
push @cmd_pipe, { safe_cmd_text => decompress_cmd($compressed) }; push @cmd_pipe, { cmd_text => decompress_cmd($compressed) };
$compressed = undef; $compressed = undef;
} }
unless($compressed) { unless($compressed) {
push @cmd_pipe, { safe_cmd_text => compress_cmd($href->{rsh_compress_in}) }; push @cmd_pipe, { cmd_text => compress_cmd($href->{rsh_compress_in}) };
$compressed = $href->{rsh_compress_in}; $compressed = $href->{rsh_compress_in};
} }
} }
if($compressed && (not ($href->{compressed_ok}))) { if($compressed && (not ($href->{compressed_ok}))) {
unshift @rsh_cmd_pipe, { safe_cmd_text => decompress_cmd($compressed) }; unshift @rsh_cmd_pipe, { cmd_text => decompress_cmd($compressed) };
$compressed = undef; $compressed = undef;
} }
if($href->{rsh_compress_out}) { if($href->{rsh_compress_out}) {
die if($href->{redirect_to_file}); die if($href->{redirect_to_file});
push @rsh_cmd_pipe, { safe_cmd_text => compress_cmd($href->{rsh_compress_out}) }; push @rsh_cmd_pipe, { cmd_text => compress_cmd($href->{rsh_compress_out}) };
$compressed = $href->{rsh_compress_out}; $compressed = $href->{rsh_compress_out};
} }
if((scalar(@rsh_cmd_pipe) == 1) && ($rsh_cmd_pipe[0]->{redirect_to_file})) { if((scalar(@rsh_cmd_pipe) == 1) && ($rsh_cmd_pipe[0]->{redirect_to_file})) {
# NOTE: direct redirection in ssh command does not work: "ssh '> outfile'" # NOTE: direct redirection in ssh command does not work: "ssh '> outfile'"
# we need to assemble: "ssh 'cat > outfile'" # we need to assemble: "ssh 'cat > outfile'"
unshift @rsh_cmd_pipe, { safe_cmd_text => 'cat' }; unshift @rsh_cmd_pipe, { cmd_text => 'cat' };
} }
my $rsh_text = _safe_cmd($href->{rsh}, \@unsafe_cmd); my $rsh_text = _safe_cmd($href->{rsh}, \@unsafe_cmd);
return undef unless(defined($rsh_text)); return undef unless(defined($rsh_text));
$href->{safe_cmd_text} = $rsh_text . " '" . _assemble_cmd(\@rsh_cmd_pipe) . "'"; $href->{cmd_text} = $rsh_text . " '" . _assemble_cmd(\@rsh_cmd_pipe) . "'";
} }
else { else {
if($compressed && (not ($href->{compressed_ok}))) { if($compressed && (not ($href->{compressed_ok}))) {
push @cmd_pipe, { safe_cmd_text => decompress_cmd($compressed) }; push @cmd_pipe, { cmd_text => decompress_cmd($compressed) };
$compressed = undef; $compressed = undef;
} }
} }