     (speak)
     (test :exit? false)))
 
+(def windows?
+  (.startsWith (.toLowerCase (System/getProperty "os.name")) "windows"))
+
 (deftask check-node-modules []
   (with-pass-thru _
     (let [nm (io/file "node_modules")]

(deftask sift-cljs-resources []
  (comp
    (sift :add-jar
      {'org.clojure/clojure #"^clojure/template\.clj"
       'org.clojure/clojurescript
       #"^cljs/(test\.cljc|core\.cljs\.cache\.aot\.edn|spec(\.cljc|/test\.clj[sc]|/impl/gen\.cljc))$"}
      :move {#"^main.out/((cljs|clojure|cognitect|lumo|lazy_map).*)" "$1"})
    (sift :include #{#"^main.js" #"^bundle.js" #"^cljs(?!\.js)"
                     #"^clojure" #"^cognitect" #"^lumo/" #"^lazy_map/"})
    (sift :include #{#"^cljs\/core\.cljs\.cache\.json$"} :invert true)))

(deftask compile-cljs []
  (cljs :compiler-options {:hashbang false

   without having to recompile CLJS"
  []
  (with-pass-thru _
    (if windows?
      (dosh "xcopy" "target" "resources_bak" "/s" "/e" "/y")
      (dosh "cp" "-R" "target" "resources_bak"))))

(deftask aot-macros []
  (with-pass-thru _
