リソース フォルダーを持つ Clojure プロジェクトを考えてみましょう。このフォルダーには、いくつかのファイルと、いくつかの Web コンテンツを保持する "public" という別のフォルダーが含まれています。
ClojureScript をコンパイルし、パブリック ディレクトリだけをグローバル ファイルシステムの別のディレクトリに移動するブート タスクを探しています。最後に、フォルダーの名前を「project- version」に変更する必要があります。
以下はmove-files
、ディレクトリではなくファイルに対してのみ機能するため、機能しません。しかし、私はそれがアイデアを明確にしていると思います:
(def project-name "My")
(def project-version "0.1.0")
(deftask store-web-dir []
(let [dir-name (format "%s-%s" project-name project-version)]
(comp
(cljs :optimizations :advanced)
(move-files :files {"public" dir-name}) ;; should rename the dir public to ..
(copy :output-dir "/some/path/web_dirs"
:matching #{(re-pattern (str "^" dir-name "$"))}))))
/some/path/web_dirs/My-0.1.0
この後、プロジェクトのすべてのパブリック ファイルのコンパイル済みバージョンを含むフォルダーが存在するはずです。