+(define (legal-script-filename? filename config)
+ (and (legal-filename? filename config)
+ (string-suffix? ".scm" filename)
+ (file-executable? filename)))
+
+(define (serve-directory-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))
+ (selector-dir (pathname-directory selector)))
+ (serve-records (with-selector-dir
+ selector config
+ (lambda ()
+ (apply (eval sexp) arguments)))
+ selector-dir config)
+ (print ".\r"))
+ (error "No legal index script not found." filename))))
+
+(define (serve-directory-file selector config)