feat: o pona e ijo Config kepeken lipu Library
All checks were successful
build / build (push) Successful in 5s

This commit was merged in pull request #22.
This commit is contained in:
2026-03-22 13:24:59 -06:00
parent d4ff27ada4
commit 29d5cdc85a
19 changed files with 146 additions and 75 deletions

View File

@@ -9,7 +9,9 @@ mkCljBin {
projectSrc = ./.;
lockfile = ../deps-lock.json;
main-ns = "net.deertopia.publisher.main";
buildInputs = [];
buildInputs = [
doerg
];
nativeBuildInputs = [
babashka
];

View File

@@ -11,5 +11,6 @@
net.deertopia/doerg {:local/root "../doerg"}
metosin/reitit {:mvn/version "0.10.1"}
http-kit/http-kit {:mvn/version "2.8.0"}
instaparse/instaparse {:mvn/version "1.5.0"}}
instaparse/instaparse {:mvn/version "1.5.0"}
aero/aero {:mvn/version "1.1.6"}}
:paths ["src" "resources" "test"]}

View File

@@ -20,7 +20,10 @@
(loop [os (seq overrides)
loc zloc]
(if-some [[[k v] & xs] os]
(recur xs (z/assoc loc k v))
(do (binding [*out* *err*]
(printf "override dep %s with %s\n"
(pr-str k) (pr-str v)))
(recur xs (z/assoc loc k v)))
loc)))
(defn args->overrides [args]

View File

@@ -0,0 +1,5 @@
#:net.deertopia.publisher
{:state-directory #join [#or [#env XDG_STATE_HOME
#envf ["%s/.local/share" HOME]]
"/doerg-publisher"]
:org-roam-db-path #join [#env HOME "/.cache/emacs/org-roam.db"]}

View File

@@ -1,17 +1,28 @@
(ns net.deertopia.publisher.config
(:require [babashka.fs :as fs]
[clojure.spec.alpha :as s]
[net.deertopia.doerg.config :as doerg]))
[net.deertopia.doerg.config :as doerg-config]
[net.deertopia.doerg :as-alias doerg]
[net.deertopia.publisher :as-alias p]
[aero.core :as aero]
[clojure.java.io :as io]))
(s/def ::config
(s/keys :req [::state-directory
::org-roam-db-path]))
(s/def ::p/config
(s/keys :req [::p/state-directory
::p/org-roam-db-path]))
(s/def ::p/state-directory ::doerg/file)
(s/def ::p/org-roam-db-path ::doerg/file)
(def read-config (doerg-config/make-read-config ::p/config))
(def default
{::state-directory (fs/xdg-state-home "doerg-publisher")
::org-roam-db-path (fs/file (fs/home) ".cache" "emacs" "org-roam.db")})
(read-config
;; Default config.
(io/resource "net/deertopia/publisher/config.edn")
;; Defaults set at build time, if any.
(io/resource "net/deertopia/publisher/extra-config.edn")
;; Config set at runtime.
(System/getenv "DOERG_PUBLISHER_CONFIG")))
(def ^:dynamic *cfg* default)
(s/def ::state-directory ::doerg/file)
(s/def ::org-roam-db-path ::doerg/file)

View File

@@ -3,6 +3,7 @@
[net.deertopia.publisher.config :as cfg]
[net.deertopia.publisher.elisp :as elisp]
[net.deertopia.publisher.slug :as slug]
[net.deertopia.publisher :as-alias publisher]
[next.jdbc :as sql])
(:import (java.util UUID)))
@@ -11,7 +12,7 @@
(defonce ^:dynamic *use-db-cache?* true)
(def db-path (-> cfg/*cfg* ::cfg/org-roam-db-path
(def db-path (-> cfg/*cfg* ::publisher/org-roam-db-path
fs/expand-home str))
(def db {:dbtype "sqlite"

View File

@@ -18,7 +18,10 @@
[reitit.spec]
[reitit.dev.pretty]
[clojure.spec.alpha :as s]
[net.deertopia.doerg.render :as doerg-render]))
[net.deertopia.doerg.render :as doerg-render]
[net.deertopia.publisher.cached-file :as cached-file]
[babashka.fs :as fs]
[aero.core :as aero]))
;;; Routes