diff options
| -rw-r--r-- | main.clj | 25 |
1 files changed, 23 insertions, 2 deletions
@@ -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} |
