brutcss/build.clj

42 lines
1 KiB
Clojure
Raw Normal View History

2022-10-08 23:03:03 +00:00
#!/usr/bin/env bb
(require '[babashka.fs :as fs]
'[babashka.process :refer [process]]
'[java-time.api :as jt])
(def dist "_build")
(def tmp-dir (-> (fs/create-temp-dir)
(fs/delete-on-exit)))
(def tmp-css (fs/file tmp-dir "tmp.css"))
(def brut-css "brut.min.css")
(fs/create-dirs dist)
(def sub-css
["colors"
"extended-colors"
"general"
"buttons"
"grid"
"components"
"headings"
"icons"
"forms"
"navbar"
"tables"
"messages"])
(spit tmp-css (str "/* Copyright %s Yann Esposito; MIT licensed */"
(jt/year (jt/local-date))))
(doseq [item sub-css]
(println "building: %s" item)
(let [css (fs/file tmp-dir (str item ".css"))
min-css (fs/file tmp-dir (str item ".min.css"))]
(process ["lessc" (format "src/%s.less" item)] {:out css})
(process ["minify" min-css] {:out min-css})
(when-not (= "extended-colors" item)
(spit tmp-css (slurp min-css) :append true))))
(fs/move tmp-css brut-css :replace-existing :atomic-move)
(println "build: " brut-css)