+(define (serve-script selector arguments config)
+ (let ((filename (make-pathname (config-root-dir config) selector)))
+ (if (legal-script-filename? filename config)
+ (let* ((sexp (with-input-from-file filename read))
+ (script-result (with-selector-dir
+ selector config
+ (lambda ()
+ (apply (eval sexp) arguments)))))
+ (when (pair? script-result)
+ (serve-records script-result
+ (pathname-directory selector) config)
+ (print ".\r")))
+ (error "No legal index script not found." filename))))
+