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