2022-10-08 23:03:03 +00:00
|
|
|
#!/usr/bin/env bb
|
|
|
|
(require '[babashka.fs :as fs]
|
2022-10-09 09:03:15 +00:00
|
|
|
'[babashka.process :refer [process]])
|
2022-10-08 23:03:03 +00:00
|
|
|
|
|
|
|
(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"
|
|
|
|
"general"
|
|
|
|
"buttons"
|
|
|
|
"grid"
|
|
|
|
"components"
|
|
|
|
"headings"
|
|
|
|
"icons"
|
|
|
|
"forms"
|
|
|
|
"navbar"
|
|
|
|
"tables"
|
|
|
|
"messages"])
|
|
|
|
|
2022-10-09 09:03:15 +00:00
|
|
|
(defn current-year []
|
|
|
|
(-> (new java.util.Date)
|
|
|
|
.getYear
|
|
|
|
;; yeah... it's dumb
|
|
|
|
(+ 1900)))
|
|
|
|
|
|
|
|
(spit tmp-css (format "/* Copyright %s Yann Esposito; MIT licensed */" (current-year)))
|
2022-10-08 23:03:03 +00:00
|
|
|
(doseq [item sub-css]
|
2022-10-09 09:03:15 +00:00
|
|
|
(printf "building: %s\n" item)
|
2022-10-08 23:03:03 +00:00
|
|
|
(let [css (fs/file tmp-dir (str item ".css"))
|
2022-10-09 09:03:15 +00:00
|
|
|
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)]
|
2022-10-11 12:50:00 +00:00
|
|
|
(spit min-css minified)))
|
2022-10-08 23:03:03 +00:00
|
|
|
|
2022-10-09 09:03:15 +00:00
|
|
|
(fs/move tmp-css brut-css {:replace-existing true
|
|
|
|
:atomic-move true})
|
2022-10-08 23:03:03 +00:00
|
|
|
(println "build: " brut-css)
|