Replace (argv) with (command-line-arguments).
[rags.git] / rags.scm
index ecc8618..ef4726f 100644 (file)
--- a/rags.scm
+++ b/rags.scm
 
 (define (serve-script config uri)
   ;; Scripts are responsible for the entire response, including header
-  (let ((path (document-path config uri)))
-    (apply (eval (with-input-from-file path read))
-           (list uri))))
+  (let* ((path (document-path config uri))
+         (proc (eval (with-input-from-file path read))))
+    (with-current-working-directory
+     (pathname-directory (document-path config uri))
+     (lambda ()
+       (apply proc (list uri))))))
 
 (define (with-current-working-directory directory thunk)
   (let ((old-wd (current-directory))
 (define (main)
   (let* ((progname (pathname-file (car (argv))))
          (config (make-config #f #f 1965 #f #f #f #f)))
-    (if (null? (cdr (argv)))
+    (if (null? (command-line-arguments))
         (print-usage progname)
-        (let loop ((args (cdr (argv))))
+        (let loop ((args (command-line-arguments)))
           (let ((this-arg (car args))
                 (rest-args (cdr args)))
             (if (string-prefix? "-" this-arg)