From d1cea6216995bce18dbd87758d59637ec60d55bb Mon Sep 17 00:00:00 2001 From: eltrac Date: Sat, 4 Jul 2026 11:37:34 +0800 Subject: read config from a specified path --- main.clj | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/main.clj b/main.clj index 37bde9d..0c671f3 100644 --- a/main.clj +++ b/main.clj @@ -1,12 +1,33 @@ #!/usr/bin/env bb (require '[babashka.tasks :refer [shell]] + '[babashka.fs :as fs] '[clojure.edn :as edn]) -(def vimulti-config "config.edn") +(def default-config + {:editor-command "nvim" + :editor-config "/Users/eltrac/.config/nvim/" + :default-branch "master"}) + +(defn- config-path [] + (let [env-vimnulti-config (System/getenv "VIMULTI_CONFIG") + env-xdg-config-home (System/getenv "XDG_CONFIG_HOME") + config-filename "config.edn"] + (or env-vimnulti-config + (if env-xdg-config-home + (str env-xdg-config-home "/vimulti/" config-filename) + config-filename)))) + +(defn- init-config [path] + (when-not (fs/exists? path) + (fs/create-dirs (fs/parent path)) + (fs/create-file path) + (spit path default-config)) + path) + (let [[branch-name & args] *command-line-args* - config (-> vimulti-config slurp edn/read-string) + config (-> (config-path) init-config slurp edn/read-string) current-branch (or (shell {:dir (:editor-config config) :out :string} -- cgit v1.2.3