(ns build
"Package the Clojure source library and its resources."
(:require [clojure.tools.build.api :as b]
[clojure.java.io :as io]))
(defn jar [{:keys [version] :or {version "0.1.0-SNAPSHOT"}}]
(let [lib 'com.tailrecursion/blacktide class-dir "target/jar-classes"
basis (b/create-basis {:project "deps.edn"})]
(b/delete {:path class-dir})
(b/copy-dir {:src-dirs ["src" "resources"] :target-dir class-dir})
;; Editor state may be nested beneath namespace directories.
(doseq [file (file-seq (io/file class-dir))
:when (.startsWith (.getName file) ".")]
(b/delete {:path (.getPath file)}))
(b/copy-file {:src "LICENSE" :target (str class-dir "/META-INF/LICENSE")})
(b/write-pom {:lib lib :version version :basis basis :class-dir class-dir
:src-dirs ["src"]})
(b/jar {:class-dir class-dir :jar-file (str "target/blacktide-" version ".jar")})))