IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 12, 2026, 2:47:49 PM (5 weeks ago)
Author:
eugene
Message:

convert the IPC::Cmd run calls to ps_run to handle inconsistent behavior between IPC:Cmd versions pre- and post-0.40

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-pstamp-20260421/pstamp/scripts/pstamp_queue_update_cleanup.pl

    r43048 r43052  
    66use warnings;
    77
    8 use PS::IPP::Config 1.01 qw( :standard );
    9 use IPC::Cmd 0.36 qw( can_run run );
     8use PS::IPP::Config 1.01 qw( :standard ps_run );
     9use IPC::Cmd 0.36 qw( can_run );
    1010use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
    1111use Pod::Usage qw( pod2usage );
    12 use Scalar::Util qw(looks_like_number);
    1312
    1413my $verbose;
     
    6766
    6867my $command = "$pstamptool -pendingdependent -includefaulted -simple";
    69 my  ( $success, $error_msg, $full_buf, $stdout_buf, $stderr_buf ) =
    70     run(command => $command, verbose => $very_verbose);
    71 my $error_code = &parse_error_message ($success, $error_msg, $command);
     68my  ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     69    ps_run(command => $command, verbose => $very_verbose);
    7270unless ($success) {
    73     $error_code = ($error_code or 1);
     71    $error_code = (($error_code >> 8) or 1);
    7472    warn("$command failed. exit status: $error_code");
    7573    exit $error_code;
     
    8886        $command .= " -dbname $imagedb";
    8987
    90         my  ( $success, $error_msg, $full_buf, $stdout_buf, $stderr_buf ) =
    91             run(command => $command, verbose => $very_verbose);
    92         my $error_code = &parse_error_message ($success, $error_msg, $command);
     88        my  ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     89            ps_run(command => $command, verbose => $very_verbose);
    9390        unless ($success) {
    94             $error_code = ($error_code or 1);
     91            $error_code = (($error_code >> 8) or 1);
    9592            warn("$command failed. exit status: $error_code");
    9693            exit $error_code;
     
    10198exit 0;
    10299
    103 # if the program exited normally, the exit value is returned
    104 # if the program exited with a signal (abort, crash, etc), PS_EXIT_PROG_ERROR (4) is returned
    105 # if the program failed to run, -PS_EXIT_PROG_ERROR (-4) is returned
    106 sub parse_error_message {
    107     my $success = shift;
    108     my $error_msg = shift;
    109     my $command = shift;
    110 
    111     if ($success) { return 0; }
    112 
    113     print "raw error_msg: $error_msg\n";
    114     print "full command: $command\n";
    115 
    116     if (&looks_like_number($error_msg)) { return (($error_msg >> 8) or ($PS_EXIT_PROG_ERROR)); }
    117        
    118     # which of these match?
    119     my ($error_code) = $error_msg =~ m/exited with value (\d+)/;
    120     if (defined $error_code) { return $error_code; }
    121    
    122     ($error_code) = $error_msg =~ m/died with signal (\d+)/;
    123 #   if (defined $error_code) { return (128 + $error_code); }
    124     if (defined $error_code) { return ($PS_EXIT_PROG_ERROR); }
    125    
    126     # probably failed to execute:
    127     return (-1*$PS_EXIT_PROG_ERROR);
    128 }
Note: See TracChangeset for help on using the changeset viewer.