[Zope] newbie CGI question

Tres Seaver tseaver@palladion.com
Wed, 22 Mar 2000 08:51:41 -0600


"Eric Walstad" <ewalstad@energywright.com>
> 
> Hung Jung Lu ,
> Along these same lines, I have a C++ CGI App that I would like to call from
> zope.  It requires a couple of parameters.  The app can either return HTML
> or I can have it save the output to a text file.  Ultimately, the text will
> need to be displayed to the user from Zope.
> Q1.  How does one call a C++ CGI program from Zope?
> Q2.  How do you supply the C++ CGI program with "command line" parameters
> from Zope when making the call?

From Python (either an ExternalMethod or a product)::

  import sys, os, string

  def ExecCGI( cmdLine ):
      """
      Run an external command and return its standard output as a string.
      """
      f = os.popen( cmdLine ) # note that Win32 has a non-standard popen()
      lines = f.readlines()
      status = f.close()
      if status:
         raise "CGI returned error: %d" % status[1]
      return string.join( lines )

To call it from DTML, passing the current values of 'foo' and 'bar'::

   <dtml-let cmdLine="'/path/to/my/cgi %s %s' % ( foo, bar )">
     <dtml-var "ExecCGI( cmdLine )">
   </dtml-let>

Tres.
-- 
=========================================================
Tres Seaver         tseaver@palladion.com    713-523-6582
Palladion Software  http://www.palladion.com