|
|
|
@ -1,18 +1,27 @@
|
|
|
|
|
(ns cryogen-core.sass
|
|
|
|
|
(:require [clojure.java.shell :refer [sh]]
|
|
|
|
|
[clojure.java.io :as io]))
|
|
|
|
|
[clojure.java.io :as io]
|
|
|
|
|
[cryogen-core.io :refer [ignore]]))
|
|
|
|
|
|
|
|
|
|
(defn sass-installed?
|
|
|
|
|
"Checks for the installation of Sass."
|
|
|
|
|
[]
|
|
|
|
|
(= 0 (:exit (sh "sass" "--version"))))
|
|
|
|
|
|
|
|
|
|
(defn re-filter [re]
|
|
|
|
|
(reify java.io.FilenameFilter
|
|
|
|
|
(accept [this _ name]
|
|
|
|
|
(not (nil? (re-find re name))))))
|
|
|
|
|
|
|
|
|
|
(defn find-sass-files
|
|
|
|
|
"Given a Diretory, gets files, filtered to those having scss or sass extention"
|
|
|
|
|
[dir]
|
|
|
|
|
(->> (.list (io/file dir))
|
|
|
|
|
(seq)
|
|
|
|
|
(filter (comp not nil? (partial re-find #"(?i:s[ca]ss$)")))))
|
|
|
|
|
"Given a Diretory, gets files, Filtered to those having scss or sass
|
|
|
|
|
extention. Ignores files matching any ignored regexps."
|
|
|
|
|
[dir ignored-files]
|
|
|
|
|
(let [filename-filter (re-filter #"(?i:s[ca]ss$)")]
|
|
|
|
|
(->> (.listFiles (io/file dir) filename-filter)
|
|
|
|
|
(filter #(not (.isDirectory %)))
|
|
|
|
|
(filter (ignore ignored-files))
|
|
|
|
|
(map #(.getName %)))))
|
|
|
|
|
|
|
|
|
|
(defn compile-sass-file!
|
|
|
|
|
"Given a sass file which might be in src-sass directory,
|
|
|
|
@ -31,8 +40,9 @@
|
|
|
|
|
dest-sass. Prompts you to install sass if he finds sass files and can't find
|
|
|
|
|
the command. Shows you any problems it comes across when compiling. "
|
|
|
|
|
[src-sass
|
|
|
|
|
dest-sass]
|
|
|
|
|
(let [sass-files (find-sass-files src-sass)]
|
|
|
|
|
dest-sass
|
|
|
|
|
ignored-files]
|
|
|
|
|
(let [sass-files (find-sass-files src-sass ignored-files)]
|
|
|
|
|
(if (seq sass-files)
|
|
|
|
|
;; I found sass files,
|
|
|
|
|
;; If sass is installed
|
|
|
|
|