[GRASS-dev] [GRASS GIS] #2008: grass.script's find_program() can't find modules

GRASS GIS trac at osgeo.org
Fri Jun 21 11:28:18 PDT 2013


#2008: grass.script's find_program() can't find modules
-----------------------+----------------------------------------------------
  Reporter:  hamish    |       Owner:  grass-dev@…              
      Type:  defect    |      Status:  reopened                 
  Priority:  critical  |   Milestone:  6.4.4                    
 Component:  Python    |     Version:  svn-releasebranch64      
Resolution:            |    Keywords:  find_program()           
  Platform:  All       |         Cpu:  x86-64                   
-----------------------+----------------------------------------------------

Comment(by wenzeslaus):

 Replying to [comment:24 wenzeslaus]:
 >
 > I was about to commit the special case for the `explorer` cmd on MS Win.
 However, there is also a special case for `xdg-open`, I'm not sure why.
 Moreover, I tested also other command and e.g. `firefox` blocks the
 g.manual (it also blocks the cmd line when launched without &). On the
 other hand, in case of g.manual it opens the requested page, so it means
 that it goes behind the `call` function in `find_program`. This confuses
 me, I'would expect that the `wait()` call in `call` function
 implementation should block the interpreter sooner (i.e. in
 `find_program`).
 >
 I tested it again and I probably did some mistake before. `firefox` and
 `chromium-browser` blocks `g.manual` in `find_program` (browser starts
 empty). `xdg-open`, `gnome-open` and `kde-open` works well.

 I still don't know why there was special case for `xdg-open`.

 Alternatively, we don't need to do `find_program`/`test_program` for
 browser, we can just run and report only after `os.execlp` (now there is
 an error message anyway).

 Replying to [comment:25 annakrat]:
 > Why not to have two functions: find_program - behaves like which
 command, test_program - or something similar which tests the program by
 calling it. For web browsers we could use the which implementation.

 Maybe, also the third one for `test_(grass_)module` for GRASS modules?
 (Than, we would use `test_module('r.sun')` instead of
 `test_program('r.sun', '--help')`) The point is that we need special cases
 anyway, so why not to make it explicit.

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/2008#comment:26>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list