Michael Barton wrote:

> >> GRASS command parsing from the wxgrass CLI:
> >> 
> >> Split the command into a list by spaces. I realize that this is a problem
> >> for any command with spaces in the arguments, but I know of no better way 
> >> to
> >> do this in this context outside of making users type any command as a 
> >> Python
> >> list. If we made people type ['g.region', 'rast=mymap', 'res=30'] instead 
> >> of
> >> g.region rast=mymap res=30, I don't think anyone would want to use the CLI.
> > 
> > This is one case where shell=True *is* legitimate. At least with a
> > shell, the user can use quotes or backslashes to include spaces in
> > arguments. Or you could implement equivalent functionality yourself.
> 
> IIUC, if I keep these as strings, I don't think I can use the cmd.Command
> class and would have to do a custom version of Popen. Then I'd have to send
> them through a different processing path rather than the RunCmd method that
> everything else uses.

One option is to call the shell explicitly, i.e.:

        cmd.Command(['/bin/sh', '-c', cmdstr], ....)

or (on Windows):

        cmd.Command(['cmd', '/c', cmdstr], ...)

Simply adding quoting to the existing implementation would probably be
preferable, though.

-- 
Glynn Clements <[EMAIL PROTECTED]>

_______________________________________________
grassgui mailing list
[email protected]
http://grass.itc.it/mailman/listinfo/grassgui

Reply via email to