I think on_stop should conform more to these params: after_each_exec before_any_exec after_all_exec
E.g., before_mtt_start_exec after_mtt_start_exec Then have &_process_get_value_option() call DoCommand. Note, DoCommand is aware of hashbangs (see &_contains_shell_script_characters()), so &shell_script() might be redundant. -Ethan On Thu, Sep/24/2009 07:46:40PM, Mike Dubman wrote: > Hey Jeff, > > On Thu, Sep 24, 2009 at 4:02 PM, Jeff Squyres <jsquy...@cisco.com> wrote: > > 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. > > Im not familiar with :\n semantics, how does it force Bourne shell and > what it actually does :)? (seems like leftovers from 1960....) > I think when interpreter is not explicitly specified - the default user`s > shell is used. > see in the DoCommand::Cmd() ..... it check the buffer`s* first line for > #!/... semantic and if found - saves buffer to file, adds +x perm,* and > just executes it as a regular script. > > When I passed a buffer with shell commands but 1st line was not #!/bin/sh > - it* failed with syntax errors. > > * > > 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? > > sounds good! > > Also, is "&shell_script()" a good name? *If you can specify your own > interpreter, it might not be a shell script. *How about &executable()? > > ok - &executable() it will be! > * > > regards > > Mike > > 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 > > _______________________________________________ > mtt-devel mailing list > mtt-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel > > References > > Visible links > . mailto:jsquy...@cisco.com > . mailto:mi...@osl.iu.edu > . https://svn.open-mpi.org/trac/mtt/changeset/1319 > . mailto:mtt-...@open-mpi.org > . http://www.open-mpi.org/mailman/listinfo.cgi/mtt-svn > . mailto:jsquy...@cisco.com > . mailto:mtt-de...@open-mpi.org > . http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel > _______________________________________________ > mtt-devel mailing list > mtt-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/mtt-devel