forked from cvillecsteele/lein-git-version
-
Notifications
You must be signed in to change notification settings - Fork 0
/
plugin.clj
22 lines (21 loc) · 876 Bytes
/
plugin.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(ns lein-git-version.plugin
(:require [leiningen.git-version :refer [get-project-info]]
[clojure.string :refer [join]]))
(defn middleware
[project & args]
(let [info (get-project-info project)
code (str
";; Do not edit. Generated by lein-git-version plugin.\n"
"(ns " (:name project) ".version)\n"
"(def version \"" (:version info) "\")\n"
"(def info {\n"
(->> info
(map (fn [[k v]] (format " %s \"%s\"" k v)))
(join "\n"))
"\n})\n")
filename (format "%s/%s/version.clj"
(first (:source-paths project))
(.replace (:name project) "-" "_"))]
(-> project
(update-in [:injections] concat `[(spit ~filename ~code)])
(assoc :version (:version info)))))