backu...@kosowsky.org 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 BackupPC-users@lists.sourceforge.net List: https://lists.sourceforge.net/lists/listinfo/backuppc-users Wiki: http://backuppc.wiki.sourceforge.net Project: http://backuppc.sourceforge.net/