[plt-scheme] Mac OS X 10.1.5, Apache 1.3.26, MZScheme 201 and CGI/Shell Scripting
Paul,
That was it. Thank you.
Scott Rogers
On Friday, October 11, 2002, at 03:41 PM, Paul Graunke wrote:
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> The shell script your CGI program is calling refers to $HOME, which may
> very well not be set or be set to something else in the context of
> apache.
> I'm assuming that sort and awk are in the $PATH, but that would be the
> next
> thing I would check.
>
> Paul
>
> At Fri, 11 Oct 2002 15:16:08 -0400, Scott Rogers wrote:
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>> All,
>>
>> I am running the following configuration:
>> Mac OS X 10.1.5
>> Apache 1.3.26
>> MZScheme 201
>>
>> And I am working on a CGI application. Here is the problem, when I
>> execute the script from the command line, I get the expected result.
>> When I execute it as a CGI from Apache, get #<eof> returned. I am
>> able
>> to run mzscheme CGI scripts, but this on causes me a problem.
>>
>>
>> When the shell script is executed from the command line like so:
>> ./test-process.scm
>>
>> The following is appears on stdout:
>> Content-type: text/html
>> /Users/scottr/projects/discuss/bin/gltid.sh<br/>
>> /Users/scottr/projects/discuss/data/topics.current<br/>
>> 264
>>
>>
>> However, when I execute it as a CGI through Apache, the following is
>> returned to the browser:
>> /Users/scottr/projects/discuss/bin/gltid.sh
>> /Users/scottr/projects/discuss/data/topics.current
>> EOF!
>>
>>
>> ;;; Scheme Script
>>
>> #!/bin/sh
>> ":";exec /usr/local/bin/mzscheme -r $0 "$@"
>>
>> (require (lib "cgi.ss" "net"))
>> (require (lib "process.ss"))
>>
>> (output-http-headers)
>>
>> (define get-last-topic-id
>> (lambda ()
>> (let ((p "/Users/scottr/projects/discuss/bin/gltid.sh")
>> (a "/Users/scottr/projects/discuss/data/topics.current"))
>> (cond ((not (file-exists? p))
>> (display p)
>> (display ": does not exist.<br/>"))
>> ((not (file-exists? a))
>> (display a)
>> (display ": does not exist.<br/>"))
>> ( #t
>> (display p)(display "<br/>\n")
>> (display a)(display "<br/>\n")
>> (let ((results (process* p a)))
>> (let ((topic-id (read-line (car results))))
>> (close-input-port (car results))
>> (close-output-port (cadr results))
>> (close-input-port (cadddr results))
>> (if (eof-object? topic-id)
>> "EOF!"
>> topic-id))))))))
>>
>> (display (get-last-topic-id))
>> (display "\n")
>>
>>
>>
>> ;;; The shell script it's calling is as follows:
>> sort -n -t , -k 1 $1 | awk -F, -f $HOME/projects/discuss/bin/gltid.awk
>>
>>
>> ;;; The awk script is as follows:
>> #
>> # Get Last Topic ID
>> #
>> BEGIN { FS = ","; }
>> {
>> id = $1;
>> }
>> END { print( id ); }
>
>