Рассмотрите проект Clojure с папкой ресурсов, в которой содержатся некоторые файлы и другая папка под названием «public», содержащая некоторый веб-контент.boot-clj: задача извлечь только определенную папку из набора файлов + переименовать ее
Я ищу задачу загрузки, которая компилирует ClojureScript, а затем перемещает только общий каталог в другой каталог в глобальной файловой системе. Наконец, папка должна быть переименована в «project-версия».
Следующие действия не работают, поскольку 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
, которая содержит скомпилированные версии всех открытых файлов проекта.
boot использует собственную файловую систему абстракции. Вы не должны использовать стандартные функции для обработки файлов. Взгляните на задачу 'sift'. –
Хороший совет, просеивание выглядит как правильный инструмент здесь. –