home *** CD-ROM | disk | FTP | other *** search
/ Caldera Network Desktop 1.0 / caldera-network-desktop-1.0.bin / images / ramdisk2.img / usr / lib / perl / misc < prev    next >
Text File  |  1995-09-29  |  2KB  |  104 lines

  1. # Misc routines
  2.  
  3. # Variable $no_invoke controls whether or not commands are executed
  4.  
  5. # Vaiable $show_invoke, if true, causes invoke to display the command
  6. # to be run before running it.
  7.  
  8. $no_invoke = 0;
  9. $show_invoke = 0;
  10. $hold_on_error = 1;
  11.  
  12. sub cmp_reverse {
  13.     $b cmp $a
  14. }
  15.  
  16. sub member {
  17.     local ( $element, @list ) = @_;
  18.     local ( $tmp );
  19.  
  20.     foreach $tmp (@list) {
  21.     if ($tmp eq $element) {
  22.         return 1;
  23.     }
  24.     }
  25.  
  26.     return 0;
  27. }
  28.  
  29. sub abs {
  30.     local ($i) = @_;
  31.  
  32.     $i = -$i if ($i < 0);
  33.     return $i;
  34. }
  35.  
  36. sub invoke {
  37.     local ($command) = @_;
  38.     local ( $ret );
  39.  
  40.     if ($show_invoke || $rh_testing) {
  41.     &rhs_msgbox("invoke", $command, 75);
  42.     }
  43.  
  44.     if ($rh_testing) {
  45.     return 0;
  46.     }
  47.  
  48.     $ret = 0;
  49.     if (! $no_invoke) {
  50.     $ret = system($command) / 256;
  51.     }
  52.  
  53.     if ($ret && $hold_on_error) {
  54.     print "\nError.  Press enter for more info\n";
  55.     <STDIN>;
  56.     print "The following command:\n\n";
  57.     print "$command\n";
  58.     print "\nexited with code $ret\n";
  59.     print "\nPress enter to continue.\n";
  60.     <STDIN>;
  61.     }
  62.     return $ret;
  63. }
  64.  
  65. sub rhs_error {
  66.     print "\nAn error of some kind occurred.\n";
  67.     print "Press enter to continue: ";
  68.     <STDIN>;
  69. }
  70.  
  71. sub invoke_no_output {
  72.     local ( $command ) = @_;
  73.     local ( $ret );
  74.  
  75.     if ($show_invoke) {
  76.     &rhs_msgbox("invoke", $command, 75);
  77.     }
  78.  
  79.     open(SAVEERR, ">&STDERR");
  80.     open(SAVEOUT, ">&STDOUT");
  81.     open(STDERR, ">/dev/null");
  82.     open(STDOUT, ">/dev/null");
  83.     $ret = system($command) unless ($no_invoke);
  84.     open(STDERR, ">&SAVEERR");
  85.     open(STDOUT, ">&SAVEOUT");
  86.  
  87.     return $ret;
  88. }
  89.  
  90. sub asciitime {
  91.     local ( $tval ) = @_;
  92.     local ( $secs, $mins, $hours );
  93.  
  94.     $hours = $tval / 3600;
  95.     $tval %= 3600;
  96.     $mins = $tval / 60;
  97.     $secs = $tval % 60;
  98.  
  99.     return sprintf("%02d:%02d:%02d", $hours, $mins, $secs);
  100. }
  101.  
  102. ######################
  103. 1;
  104.