build.clj 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. (ns build
  2. (:require [clojure.data.json :as json]
  3. [clojure.tools.build.api :as b]
  4. [deps-deploy.deps-deploy :as dd]))
  5. (def lib 'com.logseq/libs)
  6. (def version
  7. (-> (slurp "package.json")
  8. (json/read-str :key-fn keyword)
  9. :version))
  10. (def class-dir "target/classes")
  11. (def basis (delay (b/create-basis {:project "deps.edn"})))
  12. (def jar-file (format "target/%s-%s.jar" (name lib) version))
  13. (def pom-template
  14. [[:description "ClojureScript wrapper for @logseq/libs"]
  15. [:url "https://github.com/logseq/logseq"]
  16. [:licenses
  17. [:license
  18. [:name "MIT License"]
  19. [:url "https://opensource.org/licenses/MIT"]]]])
  20. (def options
  21. {:class-dir class-dir
  22. :lib lib
  23. :version version
  24. :basis @basis
  25. :jar-file jar-file
  26. :src-dirs ["src"]
  27. :pom-data pom-template})
  28. (defn clean [_]
  29. (b/delete {:path "target"}))
  30. (defn jar [_]
  31. (clean nil)
  32. (b/write-pom options)
  33. (b/copy-dir {:src-dirs (:paths @basis)
  34. :target-dir class-dir})
  35. (b/jar options))
  36. (defn deploy [_]
  37. (jar nil)
  38. (dd/deploy {:installer :remote
  39. :artifact jar-file
  40. :pom-file (b/pom-path {:lib lib :class-dir class-dir})}))