diff --git a/bb.edn b/bb.edn index 980653b..ceffd85 100644 --- a/bb.edn +++ b/bb.edn @@ -8,9 +8,10 @@ (fs/delete-if-exists "brut.min.css") (fs/delete-if-exists "brut-nocolors.min.css"))} build-site {:doc "build the HTML" - :requires ([brut.main]) - :task (brut.main/-main)} + :requires ([brut.site]) + :task (brut.site/-main)} build-css {:doc "build the CSS" - :task (shell "./build.clj")} + :requires ([brut.build-css]) + :task (brut.build-css/-main)} build {:doc "Build everything" :depends [build-css build-site]}}} diff --git a/bb/brut/build_css.clj b/bb/brut/build_css.clj new file mode 100644 index 0000000..5da7815 --- /dev/null +++ b/bb/brut/build_css.clj @@ -0,0 +1,42 @@ +(ns brut.build-css + (:require + [babashka.fs :as fs] + [babashka.process :refer [process]])) + +(defn -main [& _args] + (let [dist "_build" + tmp-dir (-> (fs/create-temp-dir) + (fs/delete-on-exit)) + tmp-css (fs/file tmp-dir "tmp.css") + brut-css "brut.min.css" + sub-css ["colors" + "extended-colors" + "general" + "buttons" + "grid" + "components" + "headings" + "icons" + "forms" + "navbar" + "tables" + "messages"] + current-year (-> (new java.util.Date) + .getYear + ;; yeah... it's dumb + (+ 1900))] + + (fs/create-dirs dist) + (spit tmp-css (format "/* Copyright %s Yann Esposito; MIT licensed */" current-year)) + (doseq [item sub-css] + (printf "building: %s\n" item) + (let [css (fs/file tmp-dir (str item ".css")) + min-css (fs/file dist (str item ".min.css")) + _ @(process ["lessc" (format "src/%s.less" item)] {:out css}) + minified (-> @(process ["minify" css] {:out :string}) :out)] + (spit min-css minified) + (when-not (= "extended-colors" item) + (spit tmp-css minified :append true)))) + (fs/move tmp-css brut-css {:replace-existing true + :atomic-move true}) + (println "built: " brut-css))) diff --git a/bb/brut/main.clj b/bb/brut/site.clj similarity index 99% rename from bb/brut/main.clj rename to bb/brut/site.clj index c99ff20..7f10d8d 100644 --- a/bb/brut/main.clj +++ b/bb/brut/site.clj @@ -1,4 +1,4 @@ -(ns brut.main +(ns brut.site (:require [hiccup2.core :as h] [clojure.string :as string] [babashka.fs :as fs]))