X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=rags.git;a=blobdiff_plain;f=rags.scm;fp=gratchy.scm;h=264f5537a66647d4f09d0a22cff39756b80c8687;hp=62375340f52750413cc770cad448d774e68ee91b;hb=f279ff3c0a93204a629e707fe54b0ee08921c579;hpb=274ca1382a15061c0d2253169e362aff6c808e5d diff --git a/gratchy.scm b/rags.scm similarity index 96% rename from gratchy.scm rename to rags.scm index 6237534..264f553 100644 --- a/gratchy.scm +++ b/rags.scm @@ -54,9 +54,12 @@ (mime-type (cadr mime))) (print "20 " (string-intersperse (cdr mime) ";") "\r") (cond - ((equal? mime-type "text/gemini") (serve-dynamic-gemini path)) - ((equal? mime-type "text/plain") (serve-text-plain path)) - (else (serve-binary))))) + ((and (equal? mime-type "text/gemini") + (file-executable? path)) + (serve-text-dynamic path)) + ((string-prefix? "text/" mime-type) + (serve-text-plain path)) + (else (serve-binary path))))) (define (serve-text-plain path) (with-input-from-file path @@ -66,7 +69,7 @@ (print* str) (loop (read-string))))))) -(define (serve-dynamic-gemini path) +(define (serve-text-dynamic path) (with-input-from-file path (lambda () (let loop ((c (peek-char))) @@ -113,7 +116,6 @@ (change-directory old-wd) (signal o))))) - (define (run-server config) (define listener (ssl-listen* hostname: (config-host config) port: (config-port config) @@ -182,5 +184,4 @@ (print "One or more invalid arguments.") (print-usage progname))))))))) - (main)