X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=rags.git;a=blobdiff_plain;f=gratchy.scm;h=3ddb540068a67e55d0ea6b665154b48b80e022ca;hp=4edb63d43d27f288caf9788b57a56e0b6132f31f;hb=4a298f7242c02e226685e3c087e8aca882994cf1;hpb=1d39d886d8185117ae0312c9780557f2b5cd9b8e diff --git a/gratchy.scm b/gratchy.scm index 4edb63d..3ddb540 100644 --- a/gratchy.scm +++ b/gratchy.scm @@ -7,6 +7,10 @@ (define SERVER-ROOT "public_gemini") (define SERVER-HOST "thelambdalab.xyz") +(define file-types + '(("gmi" "text/gemini; charset=utf8") + ("txt" "text/plain; charset=utf8"))) + (define (process-request request-line) (condition-case (let ((uri (uri-normalize-path-segments (absolute-uri request-line)))) @@ -30,12 +34,19 @@ (print "50 " reason "\r")) (define (document-available? uri) - (let ((path (apply make-pathname (cons SERVER-ROOT (cdr (uri-path uri)))))) - (file-exists? path))) - + (print (document-path uri)) + (file-exists? (document-path uri))) +(define (document-path uri) + (let* ((crumbs (reverse (cons SERVER-ROOT (cdr (uri-path uri))))) + (path (make-pathname (reverse (cdr crumbs)) (car crumbs)))) + (if (directory-exists? path) + (make-pathname path "index.gmi") + path))) + (define (serve-document uri) - (print "20 Surprise!\r")) + (let ((path (document-path uri))) + (print "20 Surprise!\r"))) -(process-request "gemini://thelambdalab.xyz/../index") +(process-request "gemini://thelambdalab.xyz//")