source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/webrick/httpservlet/cgi_runner.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 972 bytes
Line 
1#
2# cgi_runner.rb -- CGI launcher.
3#
4# Author: IPR -- Internet Programming with Ruby -- writers
5# Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU
6# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
7# reserved.
8#
9# $IPR: cgi_runner.rb,v 1.9 2002/09/25 11:33:15 gotoyuzo Exp $
10
11def sysread(io, size)
12 buf = ""
13 while size > 0
14 tmp = io.sysread(size)
15 buf << tmp
16 size -= tmp.size
17 end
18 return buf
19end
20
21STDIN.binmode
22
23buf = ""
24len = sysread(STDIN, 8).to_i
25out = sysread(STDIN, len)
26STDOUT.reopen(open(out, "w"))
27
28len = sysread(STDIN, 8).to_i
29err = sysread(STDIN, len)
30STDERR.reopen(open(err, "w"))
31
32len = sysread(STDIN, 8).to_i
33dump = sysread(STDIN, len)
34hash = Marshal.restore(dump)
35ENV.keys.each{|name| ENV.delete(name) }
36hash.each{|k, v| ENV[k] = v if v }
37
38dir = File::dirname(ENV["SCRIPT_FILENAME"])
39Dir::chdir dir
40
41if interpreter = ARGV[0]
42 exec(interpreter, ENV["SCRIPT_FILENAME"])
43 # NOTREACHED
44end
45exec ENV["SCRIPT_FILENAME"]
Note: See TracBrowser for help on using the repository browser.