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 >
Wrap
Text File
|
1995-09-29
|
2KB
|
104 lines
# Misc routines
# Variable $no_invoke controls whether or not commands are executed
# Vaiable $show_invoke, if true, causes invoke to display the command
# to be run before running it.
$no_invoke = 0;
$show_invoke = 0;
$hold_on_error = 1;
sub cmp_reverse {
$b cmp $a
}
sub member {
local ( $element, @list ) = @_;
local ( $tmp );
foreach $tmp (@list) {
if ($tmp eq $element) {
return 1;
}
}
return 0;
}
sub abs {
local ($i) = @_;
$i = -$i if ($i < 0);
return $i;
}
sub invoke {
local ($command) = @_;
local ( $ret );
if ($show_invoke || $rh_testing) {
&rhs_msgbox("invoke", $command, 75);
}
if ($rh_testing) {
return 0;
}
$ret = 0;
if (! $no_invoke) {
$ret = system($command) / 256;
}
if ($ret && $hold_on_error) {
print "\nError. Press enter for more info\n";
<STDIN>;
print "The following command:\n\n";
print "$command\n";
print "\nexited with code $ret\n";
print "\nPress enter to continue.\n";
<STDIN>;
}
return $ret;
}
sub rhs_error {
print "\nAn error of some kind occurred.\n";
print "Press enter to continue: ";
<STDIN>;
}
sub invoke_no_output {
local ( $command ) = @_;
local ( $ret );
if ($show_invoke) {
&rhs_msgbox("invoke", $command, 75);
}
open(SAVEERR, ">&STDERR");
open(SAVEOUT, ">&STDOUT");
open(STDERR, ">/dev/null");
open(STDOUT, ">/dev/null");
$ret = system($command) unless ($no_invoke);
open(STDERR, ">&SAVEERR");
open(STDOUT, ">&SAVEOUT");
return $ret;
}
sub asciitime {
local ( $tval ) = @_;
local ( $secs, $mins, $hours );
$hours = $tval / 3600;
$tval %= 3600;
$mins = $tval / 60;
$secs = $tval % 60;
return sprintf("%02d:%02d:%02d", $hours, $mins, $secs);
}
######################
1;