(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)))