Files
natalieee.net/srv/content/file_io.hy
2025-05-07 17:13:30 -07:00

33 lines
918 B
Hy

(import bleach [clean])
(import mimetypes [guess-type])
(import subprocess [check-output])
(import re [sub])
(import os [environ :as hy-env])
(setv (get hy-env "PATH") (+ (get hy-env "PATH") ":./www/site/scripts"))
(defn execute-bash [data]
(sub r"\$\[(.*?)\]" (fn [sequence]
(. (check-output (.group sequence 1) :shell True :executable "/bin/bash" :env hy-env) (decode) (strip)))
data))
(defn parse-html-file [path #** kwargs]
(with [f (open path "r")]
(setv data (.read f)))
(for [[k v] (.items kwargs)]
(setv data (.replace data f"{"{"}{k}{"}"}" (str v))))
(execute-bash data))
(defn send-raw-file [path]
(setv [mime-type _] (guess-type path))
(when (not mime-type)
(setv mime-type "text/plain"))
(with [f (open path "rb")]
(setv data (.read f)))
(return #({"Content-Type" mime-type "Cache-Control" "max-age=0, stale-while-revalidate=31536000"} data)))