(ns build
"Build tasks: clojure -T:build jar / install / deploy."
(:require
[clojure.tools.build.api :as b]
[deps-deploy.deps-deploy :as dd]))
(def lib 'ro.ird/ird-clj)
(def version "0.2.0")
(def class-dir "target/classes")
(def jar-file (format "target/%s-%s.jar" (name lib) version))
(def pom-data
[[:description "Full-coverage Clojure client for the ird public API (https://api.ird.ro)"]
[:url "https://ird.cod-sursa.ro/clj/"]
[:licenses
[:license
[:name "MIT License"]
[:url "https://opensource.org/license/mit"]]]])
(defn clean [_]
(b/delete {:path "target"}))
(defn jar [_]
(let [basis (b/create-basis {:project "deps.edn"})]
(b/write-pom {:class-dir class-dir
:lib lib
:version version
:basis basis
:src-dirs ["src"]
:scm {:url "https://ird.cod-sursa.ro/clj/"
:connection "scm:git:https://ird.cod-sursa.ro/clj.git"
:developerConnection "scm:git:https://ird.cod-sursa.ro/clj.git"
:tag (str "v" version)}
:pom-data pom-data})
(b/copy-dir {:src-dirs ["src"]
:target-dir class-dir})
(b/jar {:class-dir class-dir
:jar-file jar-file})))
(defn install [_]
(jar nil)
(b/install {:basis (b/create-basis {:project "deps.edn"})
:lib lib
:version version
:jar-file jar-file
:class-dir class-dir}))
(defn deploy
"Deploy to Clojars; needs CLOJARS_USERNAME and CLOJARS_PASSWORD."
[_]
(jar nil)
(dd/deploy {:installer :remote
:artifact jar-file
:pom-file (b/pom-path {:lib lib :class-dir class-dir})}))