I'm not sure this is right.
The DoCommand.pm sub added ":\n" to the beginning to force the Bourne
shell interpreter. This is necessary for some cases where an
interpreter is not otherwise specified.
I see why you did it -- you want the ability to add your own
interpreter in &shell_script(). Why not either make a parameter to
add the ":\n" or not, or better yet, have DoCommand.pm analyze the
beginning of the string and if it contains "^:\n" or "^#!", then don't
add anything. But if it doesn't contain either of those, then prefix
it with ":\n".
How does that sound?
Also, is "&shell_script()" a good name? If you can specify your own
interpreter, it might not be a shell script. How about &executable()?
On Sep 24, 2009, at 8:06 AM, mi...@osl.iu.edu wrote:
Author: miked
Date: 2009-09-24 08:06:04 EDT (Thu, 24 Sep 2009)
New Revision: 1319
URL: https://svn.open-mpi.org/trac/mtt/changeset/1319
Log:
bug fix: CmdScript() - no need to add extra chars "\n:" to the start
of shell script file
new funclet: shell_script(section,param)
Text files modified:
trunk/lib/MTT/DoCommand.pm | 2 +-
trunk/lib/MTT/Values/Functions.pm | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletions(-)
Modified: trunk/lib/MTT/DoCommand.pm
=
=
=
=
=
=
=
=
======================================================================
--- trunk/lib/MTT/DoCommand.pm (original)
+++ trunk/lib/MTT/DoCommand.pm 2009-09-24 08:06:04 EDT (Thu, 24 Sep
2009)
@@ -797,7 +797,7 @@
$cmds =~ s/\"$//
if ($cmds =~ s/^\"//);
- print $fh ":\n$cmds\n";
+ print $fh "$cmds\n";
close($fh);
chmod(0700, $filename);
Modified: trunk/lib/MTT/Values/Functions.pm
=
=
=
=
=
=
=
=
======================================================================
--- trunk/lib/MTT/Values/Functions.pm (original)
+++ trunk/lib/MTT/Values/Functions.pm 2009-09-24 08:06:04 EDT (Thu,
24 Sep 2009)
@@ -3026,4 +3026,23 @@
return md5_hex($str);
}
+# Run shell commands as a script, i.e
+#
+# [mtt]
+# myscript=<<EOT
+# #!/bin/sh
+# pwd
+# ls
+# EOT
+# on_stop=&shell_script("mtt",myscript)
+#
+#
+
+sub shell_script {
+ my ($cmd_section, $cmd_param) = @_;
+ my $cmd = &get_ini_val($cmd_section, $cmd_param);
+ my $x = MTT::DoCommand::CmdScript(1, $cmd);
+ return $x->{result_stdout};
+}
+
1;
_______________________________________________
mtt-svn mailing list
mtt-...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn
--
Jeff Squyres
jsquy...@cisco.com