fix: config spec

This commit is contained in:
2026-03-02 14:05:39 -07:00
parent c97b7ab0dc
commit 762324d9f0
2 changed files with 24 additions and 9 deletions

View File

@@ -6,30 +6,38 @@
(s/def ::config
(s/keys :req [::ibm-plex-web
::latex
::dvisvgm]))
::dvisvgm
::doerg-temml-worker
::doerg-parser]))
(s/def ::file
#(or (instance? java.io.File %)
(string? %)))
(s/def ::executable #(or (fs/executable? %)
(and (fs/relative? %)
(fs/which %))))
(def default
{::ibm-plex-web
(or (System/getenv "DOERG_IBM_PLEX_WEB")
(fs/file (some #(let [x (fs/path % "ibm-plex-web")]
(and (fs/exists? x) x))
(fs/split-paths (System/getenv "XDG_DATA_DIRS")))))
(fs/file (some #(let [x (fs/path % "ibm-plex-web")]
(and (fs/exists? x) x))
(fs/split-paths (System/getenv "XDG_DATA_DIRS"))))
::latex "xelatex"
::dvisvgm "dvisvgm"
;; TODO: Can we automatically set this to "./doerg-temml-worker/index.js" in
;; a development environment?
::doerg-temml-worker "doerg-temml-worker"})
::doerg-temml-worker "doerg-temml-worker"
::doerg-parser "doerg-parser"})
(def ^:dynamic *cfg* default)
(s/def ::ibm-plex-web ::file)
(s/def ::latex ::file)
(s/def ::latex ::executable)
(s/def ::dvisvgm ::file)
(s/def ::dvisvgm ::executable)
(s/def ::doerg-temml-worker ::file)
(s/def ::doerg-temml-worker ::executable)
(s/def ::doerg-parser ::executable)

View File

@@ -24,6 +24,13 @@
(fs/delete-if-exists path)
(fs/create-sym-link path target))
(defn reconfigure-doerg! []
(alter-var-root
#'cfg/*cfg*
#(assoc %
::cfg/doerg-temml-worker "./doerg-temml-worker/index.js"
::cfg/doerg-parser "./doerg-parser/index.js")))
(defn render-html [& {:keys [src dest]
:or {src some-org-file
dest "/tmp/doerg-test"}}]