[email protected] wrote at about 23:19:58 -0400 on Saturday, May 18, 2019:
> Seems like @args is passed to cmdExecOrEval (e.g., when eval'ing
> Pre/Pos commands) but not used in the function itself.
> Same is true for the analogous cmdSystemOrEvalLong command.
>
>
> # Exec or eval a command. $cmd is either a string on an array ref.
> #
> # @args are optional arguments for the eval() case; they are not used
> # for exec().
> #
> sub cmdExecOrEval
> {
> my($bpc, $cmd, @args) = @_;
>
> if ( (ref($cmd) eq "ARRAY" ? $cmd->[0] : $cmd) =~ /^\&/ ) {
> $cmd = join(" ", @$cmd) if ( ref($cmd) eq "ARRAY" );
> print(STDERR "cmdExecOrEval: about to eval perl code $cmd\n")
> if ( $bpc->{verbose} );
> eval($cmd);
> print(STDERR "Perl code fragment for exec shouldn't return!!\n");
> POSIX::_exit(1);
> } else {
> $cmd = [split(/\s+/, $cmd)] if ( ref($cmd) ne "ARRAY" );
> print(STDERR "cmdExecOrEval: about to exec ",
> $bpc->execCmd2ShellCmd(@$cmd), "\n")
> if ( $bpc->{verbose} );
> alarm(0);
> $cmd = [map { m/(.*)/ } @$cmd]; # untaint
> #
> # force list-form of exec(), ie: no shell even for 1 arg
> #
> exec { $cmd->[0] } @$cmd;
> print(STDERR "Exec failed for @$cmd\n");
> POSIX::_exit(1);
> }
> }
>
Note that the comment in the following code snippet from the subroutine
'UserCommandRun' in BackupPC_dump is confusing:
#
# Run the user's command, dumping the stdout/stderr into the
# Xfer log file. Also supply the optional $vars and %Conf in
# case the command is really perl code instead of a shell
# command.
#
$bpc->cmdSystemOrEval($cmd,
sub {
$XferLOG->write(\$_[0]);
print($LogFd $bpc->timeStamp, "Output from $cmdType: ", $_[0]);
});
Specifically, where and how are the variables $vars and %Conf
supplied?
Indeed these are exactly the variables I am trying to reference but
they are neither passed in the above code nor are they inherited (as
per my previous post).
Note that even if $vars and %Conf were passed as the 3rd argument to
$bpc->cmdSystemOrEval, the arguments would be ignored when passed on
to cmdSystemOrEvalLong as per my earlier post...
_______________________________________________
BackupPC-users mailing list
[email protected]
List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki: http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/