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 >