(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)))