Boot task for generating a project.clj
from your Boot project.
This will allow Cursive IDE to work with your Boot project.
;in your build.boot
(set-env! :dependencies '[[sparkfund/boot-lein "0.4.0"]])
(require '[sparkfund.boot-lein :refer :all])
;now you can run `boot write-project-clj`
Forked from onetom's repo (which was itself forked
from darongmean's repo) to add some extra
properties and configurability in scenarios where boot.core/get-env
doesn't include all the
information you need it to include in the project.clj
. As an example, you might wish to add
:repl-options
into project.clj
, or extend the set of directories Cursive will tell IntelliJ to
mark as source roots.
Add it to your build.boot
(see above) and then run boot write-project.clj
.
If there are additional properties you want to set in the generated project.clj
, or if you'd like to replace the
values generated by this task with different values, you can either put a map into a Boot environment property
named :sparkfund.boot-lein/project-clj
, or pass the map as the override
option to the write-project-clj
task:
;first option: put the map into the Boot environment
;note that values passed as an option to the task will override values from this map
(set-env! :sparkfund.boot-lein/project-clj {:url "https://github.com/Sparkfund/boot-lein-generate"})
;second option: pass it as an option to the task
(task-options! write-project-clj {:override {:url "https://github.com/Sparkfund/boot-lein-generate"}})
;or invoke the task directly from some other task
(deftask whatever
[] ;...
(write-project-clj {:override {:url "https://github.com/SparkFund/boot-lein-generate"}}))
You can also specify these overrides from the command line, although you have to be a little careful because the values you provide will be interpreted as code. Here's a sample showing a few different types of options:
$ boot write-project-clj -o ':url="http://example.com"' -o ':offline?=true' -o ':pedantic?=:abort'
This is equivalent to setting the task options like this:
(task-options! write-project-clj {:override {:url "http://example.com", :offline? true, :pedantic? :abort}})
Copyright 2016-2017 Darong Mean, Tamas Herman, and Sparkfund
Distributed under the Eclipse Public License, Version 1.0, the same as Clojure.