--- nfo/perl/libs/shortcuts.pm 2003/06/23 17:41:50 1.11 +++ nfo/perl/libs/shortcuts.pm 2003/06/23 19:43:19 1.12 @@ -1,7 +1,11 @@ ## --------------------------------------------------------------------------- -## $Id: shortcuts.pm,v 1.11 2003/06/23 17:41:50 jonen Exp $ +## $Id: shortcuts.pm,v 1.12 2003/06/23 19:43:19 joko Exp $ ## --------------------------------------------------------------------------- ## $Log: shortcuts.pm,v $ +## Revision 1.12 2003/06/23 19:43:19 joko +## minor cleanup +## now using IPC::Session::NoShell +## ## Revision 1.11 2003/06/23 17:41:50 jonen ## + NEW - used IPC::Session instead of IPC::Run to get better results at linux ## @@ -64,7 +68,7 @@ use Carp; # NEW - 2003-06-23 -use IPC::Session; +use IPC::Session::NoShell; # $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime; @@ -81,6 +85,9 @@ return strftime("%Y-%m-%d", localtime); } +sub RUNNING_IN_HELL () { $^O eq 'MSWin32' } + + sub get_executable { my $cmd = shift; # FIXME: detect type of program and run with proper application/interpreter @@ -112,19 +119,15 @@ my $cmd = shift; my $caption = shift; my $options = shift; - #$cmd = 'perl ' . $cmd; #print Dumper($options); # report - header my $sep = "-" x 60; - print $sep, "\n"; - #print " ", $cmd, "\n"; - #print " ", " $caption", "\n" if $caption; - print " ", $cmd; - print " - ", $caption if $caption; - print "\n"; - print $sep, "\n"; + print STDERR $sep, "\n"; + print STDERR " ", $cmd; + print STDERR " - ", $caption if $caption; + print STDERR "\n", $sep, "\n"; # strip name of executable from full command string $cmd =~ m/(.+?)\s/; @@ -153,6 +156,7 @@ -e $executable or die("$executable does not exist."); #$basedir = "."; #$basedir .= './'; + $basedir = ""; } $cmd = "$basedir$cmd"; @@ -174,7 +178,7 @@ #$cmd = "$application $cmd" if $application; #my $application = get_executable_wrapper($cmd); - print "run_cmd: IPC::Run: $cmd", "\n"; + print STDERR "run_cmd: IPC::Session::NoShell: $cmd", "\n"; #run \@cmd, \$in, \$out, \$err, timeout( 10 ) or die "cat: $?"; my @cmd = split(' ', $cmd); @@ -203,11 +207,13 @@ # to wait for init of process !?!) my $session_timeout = 2; # set session name (default: cmd as string): - my $session_name = $cmd; + my $session_command = $cmd; # create session: - my $session = new IPC::Session($session_name, $session_timeout); - # send 'cmd' to session: - $session->send(\@cmd); + my $session = new IPC::Session::NoShell($session_command, $session_timeout); + + # send 'cmd' to session - not required since complete command is sent via constructor above + #$session->send(\@cmd); + # optional switch case: #for ($session->stdout()) { #} @@ -216,11 +222,11 @@ } else { - print "run_cmd: system('$cmd').", "\n"; + print STDERR "run_cmd: system('$cmd').", "\n"; system($cmd); } - print "run_cmd: ready.", "\n"; + print STDERR "run_cmd: ready.", "\n"; } @@ -246,8 +252,6 @@ return ($bool ? 'ok' : 'failed'); } -sub RUNNING_IN_HELL () { $^O eq 'MSWin32' } - # create global unique identifers using Data::UUID # if updating this code, please also modify Tangram::Storage::make_guid sub make_guid @@ -275,6 +279,5 @@ return $guid; } - - 1; +__END__