diff --git a/doc/boot.core.md b/doc/boot.core.md index 0a88e594..ef41c3c6 100644 --- a/doc/boot.core.md +++ b/doc/boot.core.md @@ -12,7 +12,7 @@ The Boot core namespace, containing most of Boot's public API. ##### Boot Environment - [`get-env`](#get-env) [`get-sys-env`](#get-sys-env) [`merge-env!`](#merge-env) [`post-env!`](#post-env) [`pre-env!`](#pre-env) [`set-env!`](#set-env) [`set-sys-env!`](#set-sys-env) + [`get-checkouts`](#get-checkouts) [`get-env`](#get-env) [`get-sys-env`](#get-sys-env) [`merge-env!`](#merge-env) [`post-env!`](#post-env) [`pre-env!`](#pre-env) [`set-env!`](#set-env) [`set-sys-env!`](#set-sys-env) ##### Define Tasks @@ -40,7 +40,7 @@ The Boot core namespace, containing most of Boot's public API. ##### Filter Sequences Of TmpFiles - [`by-ext`](#by-ext) [`by-name`](#by-name) [`by-path`](#by-path) [`by-re`](#by-re) [`file-filter`](#file-filter) [`not-by-ext`](#not-by-ext) [`not-by-name`](#not-by-name) [`not-by-path`](#not-by-path) [`not-by-re`](#not-by-re) + [`by-ext`](#by-ext) [`by-meta`](#by-meta) [`by-name`](#by-name) [`by-path`](#by-path) [`by-re`](#by-re) [`file-filter`](#file-filter) [`not-by-ext`](#not-by-ext) [`not-by-meta`](#not-by-meta) [`not-by-name`](#not-by-name) [`not-by-path`](#not-by-path) [`not-by-re`](#not-by-re) ##### Other Fileset Queries @@ -56,7 +56,7 @@ The Boot core namespace, containing most of Boot's public API. ##### Misc. Helpers - [`empty-dir!`](#empty-dir) [`git-files`](#git-files) [`gpg-decrypt`](#gpg-decrypt) [`json-generate`](#json-generate) [`json-parse`](#json-parse) [`sync!`](#sync) [`touch`](#touch) [`watch-dirs`](#watch-dirs) [`yaml-generate`](#yaml-generate) [`yaml-parse`](#yaml-parse) + [`empty-dir!`](#empty-dir) [`git-files`](#git-files) [`gpg-decrypt`](#gpg-decrypt) [`json-generate`](#json-generate) [`json-parse`](#json-parse) [`patch!`](#patch) [`sync!`](#sync) [`template`](#template) [`touch`](#touch) [`watch-dirs`](#watch-dirs) [`yaml-generate`](#yaml-generate) [`yaml-parse`](#yaml-parse) ##### Deprecated / Internal @@ -64,7 +64,7 @@ The Boot core namespace, containing most of Boot's public API.
-### [`*app-version*`](../../2.5.5/boot/core/src/boot/core.clj#L29) +### [`*app-version*`](../../2.6.0/boot/core/src/boot/core.clj#L31) ``` The running version of boot app. @@ -72,7 +72,7 @@ The running version of boot app.
-### [`*boot-opts*`](../../2.5.5/boot/core/src/boot/core.clj#L32) +### [`*boot-opts*`](../../2.6.0/boot/core/src/boot/core.clj#L34) ``` Command line options for boot itself. @@ -80,7 +80,7 @@ Command line options for boot itself.
-### [`*boot-script*`](../../2.5.5/boot/core/src/boot/core.clj#L30) +### [`*boot-script*`](../../2.6.0/boot/core/src/boot/core.clj#L32) ``` The script's name (when run as script). @@ -88,7 +88,7 @@ The script's name (when run as script).
-### [`*boot-version*`](../../2.5.5/boot/core/src/boot/core.clj#L31) +### [`*boot-version*`](../../2.6.0/boot/core/src/boot/core.clj#L33) ``` The running version of boot core. @@ -96,7 +96,7 @@ The running version of boot core.
-### [`*warnings*`](../../2.5.5/boot/core/src/boot/core.clj#L33) +### [`*warnings*`](../../2.6.0/boot/core/src/boot/core.clj#L35) ``` Count of warnings during build. @@ -104,7 +104,7 @@ Count of warnings during build.
-### [`add-asset`](../../2.5.5/boot/core/src/boot/core.clj#L419) +### [`add-asset`](../../2.6.0/boot/core/src/boot/core.clj#L487) ```clojure (add-asset fileset dir & {:keys [mergers include exclude], :as opts}) @@ -112,11 +112,32 @@ Count of warnings during build. ``` Add the contents of the java.io.File dir to the fileset's assets. + + Option :include and :exclude, a #{} of regex expressions, control + which paths are added; a path is only added if it matches an :include + regex and does not match any :exclude regexes. + + If the operation produces duplicate entries, they will be merged using + the rules specified by the :mergers option. A merge rule is a + [regex fn] pair, where fn takes three parameters: + + - an InputStream for the previous entry, + - an InputStream of the new entry, + - and an OutputStream that will replace the entry. + + You will typically use default mergers as in: + + [[ #"data_readers.clj$" into-merger ] + [ #"META-INF/services/.*" concat-merger ] + [ #".*" first-wins-merger ]] + + The merge rule regular expressions are tested in order, and the fn + from the first match is applied. ```
-### [`add-cached-asset`](../../2.5.5/boot/core/src/boot/core.clj#L424) +### [`add-cached-asset`](../../2.6.0/boot/core/src/boot/core.clj#L513) ```clojure (add-cached-asset fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts}) @@ -128,7 +149,7 @@ FIXME: document
-### [`add-cached-resource`](../../2.5.5/boot/core/src/boot/core.clj#L454) +### [`add-cached-resource`](../../2.6.0/boot/core/src/boot/core.clj#L585) ```clojure (add-cached-resource fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts}) @@ -140,7 +161,7 @@ FIXME: document
-### [`add-cached-source`](../../2.5.5/boot/core/src/boot/core.clj#L439) +### [`add-cached-source`](../../2.6.0/boot/core/src/boot/core.clj#L549) ```clojure (add-cached-source fileset cache-key cache-fn & {:keys [mergers include exclude], :as opts}) @@ -152,7 +173,7 @@ FIXME: document
-### [`add-meta`](../../2.5.5/boot/core/src/boot/core.clj#L464) +### [`add-meta`](../../2.6.0/boot/core/src/boot/core.clj#L595) ```clojure (add-meta fileset meta-map) @@ -167,7 +188,7 @@ will be merged into the TmpFile objects associated with the paths.
-### [`add-resource`](../../2.5.5/boot/core/src/boot/core.clj#L449) +### [`add-resource`](../../2.6.0/boot/core/src/boot/core.clj#L559) ```clojure (add-resource fileset dir & {:keys [mergers include exclude], :as opts}) @@ -175,11 +196,32 @@ will be merged into the TmpFile objects associated with the paths. ``` Add the contents of the java.io.File dir to the fileset's resources. + + Option :include and :exclude, a #{} of regex expressions, control + which paths are added; a path is only added if it matches an :include + regex and does not match any :exclude regexes. + + If the operation produces duplicate entries, they will be merged using + the rules specified by the :mergers option. A merge rule is a + [regex fn] pair, where fn takes three parameters: + + - an InputStream for the previous entry, + - an InputStream of the new entry, + - and an OutputStream that will replace the entry. + + You will typically use default mergers as in: + + [[ #"data_readers.clj$" into-merger ] + [ #"META-INF/services/.*" concat-merger ] + [ #".*" first-wins-merger ]] + + The merge rule regular expressions are tested in order, and the fn + from the first match is applied. ```
-### [`add-source`](../../2.5.5/boot/core/src/boot/core.clj#L434) +### [`add-source`](../../2.6.0/boot/core/src/boot/core.clj#L523) ```clojure (add-source fileset dir & {:keys [mergers include exclude], :as opts}) @@ -187,11 +229,32 @@ Add the contents of the java.io.File dir to the fileset's resources. ``` Add the contents of the java.io.File dir to the fileset's sources. + + Option :include and :exclude, a #{} of regex expressions, control + which paths are added; a path is only added if it matches an :include + regex and does not match any :exclude regexes. + + If the operation produces duplicate entries, they will be merged using + the rules specified by the :mergers option. A merge rule is a + [regex fn] pair, where fn takes three parameters: + + - an InputStream for the previous entry, + - an InputStream of the new entry, + - and an OutputStream that will replace the entry. + + You will typically use default mergers as in: + + [[ #"data_readers.clj$" into-merger ] + [ #"META-INF/services/.*" concat-merger ] + [ #".*" first-wins-merger ]] + + The merge rule regular expressions are tested in order, and the fn + from the first match is applied. ```
-### [`boot`](../../2.5.5/boot/core/src/boot/core.clj#L796) +### [`boot`](../../2.6.0/boot/core/src/boot/core.clj#L940) ```clojure (boot & argv) @@ -205,7 +268,7 @@ Otherwise they are assumed to evaluate to task middleware.
-### [`bootignore`](../../2.5.5/boot/core/src/boot/core.clj#L37) +### [`bootignore`](../../2.6.0/boot/core/src/boot/core.clj#L39) ``` Set of regexes source file paths must not match. @@ -213,7 +276,7 @@ Set of regexes source file paths must not match.
-### [`by-ext`](../../2.5.5/boot/core/src/boot/core.clj#L1012) +### [`by-ext`](../../2.6.0/boot/core/src/boot/core.clj#L1187) ```clojure (by-ext exts files & [negate?]) @@ -228,7 +291,25 @@ listed in `exts`.
-### [`by-name`](../../2.5.5/boot/core/src/boot/core.clj#L986) +### [`by-meta`](../../2.6.0/boot/core/src/boot/core.clj#L1143) + +```clojure +(by-meta preds files & [negate?]) +``` + +``` +This function takes two arguments: `preds` and `files`, where `preds` is a +seq of predicates to be applied to the file metadata and `files` is a seq of +file objects obtained from the fileset with the help of `boot.core/ls` or any +other way. Returns a seq of files in `files` which match all of the +predicates in `preds`. `negate?` inverts the result. + +This function will not unwrap the `File` objects from `TmpFiles`. +``` + +
+ +### [`by-name`](../../2.6.0/boot/core/src/boot/core.clj#L1161) ```clojure (by-name names files & [negate?]) @@ -243,7 +324,7 @@ names listed in `names`.
-### [`by-path`](../../2.5.5/boot/core/src/boot/core.clj#L999) +### [`by-path`](../../2.6.0/boot/core/src/boot/core.clj#L1174) ```clojure (by-path paths files & [negate?]) @@ -258,7 +339,7 @@ paths listed in `paths`.
-### [`by-re`](../../2.5.5/boot/core/src/boot/core.clj#L1025) +### [`by-re`](../../2.6.0/boot/core/src/boot/core.clj#L1200) ```clojure (by-re res files & [negate?]) @@ -273,7 +354,7 @@ the regex patterns in `res`.
-### [`cache-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L279) +### [`cache-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L347) ```clojure (cache-dir! key & {:keys [global]}) @@ -288,7 +369,7 @@ directories for the same key when run in different projects.
-### [`cleanup`](../../2.5.5/boot/core/src/boot/core.clj#L717) +### [`cleanup`](../../2.6.0/boot/core/src/boot/core.clj#L868) ```clojure (cleanup & body) @@ -302,7 +383,7 @@ clean up persistent resources created by the task (eg. threads, files, etc.)
-### [`commit!`](../../2.5.5/boot/core/src/boot/core.clj#L378) +### [`commit!`](../../2.6.0/boot/core/src/boot/core.clj#L446) ```clojure (commit! fileset) @@ -315,7 +396,7 @@ tree structure.
-### [`configure-repositories!`](../../2.5.5/boot/core/src/boot/core.clj#L633) +### [`configure-repositories!`](../../2.6.0/boot/core/src/boot/core.clj#L775) ```clojure (configure-repositories!) (configure-repositories! f) @@ -330,7 +411,7 @@ example).
-### [`cp`](../../2.5.5/boot/core/src/boot/core.clj#L410) +### [`cp`](../../2.6.0/boot/core/src/boot/core.clj#L478) ```clojure (cp fileset src-file dest-tmpfile) @@ -343,7 +424,7 @@ tmpfile with the contents of the java.io.File src-file.
-### [`deftask`](../../2.5.5/boot/core/src/boot/core.clj#L695) +### [`deftask`](../../2.6.0/boot/core/src/boot/core.clj#L844) ```clojure (deftask sym & forms) @@ -355,7 +436,7 @@ Define a boot task.
-### [`disable-task!`](../../2.5.5/boot/core/src/boot/core.clj#L898) +### [`disable-task!`](../../2.6.0/boot/core/src/boot/core.clj#L1044) ```clojure (disable-task! & tasks) @@ -371,7 +452,7 @@ Disables the given tasks by replacing them with the identity task.
-### [`empty-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L508) +### [`empty-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L639) ```clojure (empty-dir! & dirs) @@ -384,7 +465,7 @@ The directories in dirs themselves are not deleted.
-### [`file-filter`](../../2.5.5/boot/core/src/boot/core.clj#L977) +### [`file-filter`](../../2.6.0/boot/core/src/boot/core.clj#L1134) ```clojure (file-filter mkpred) @@ -396,7 +477,7 @@ A file filtering function factory. FIXME: more documenting here.
-### [`fileset-added`](../../2.5.5/boot/core/src/boot/core.clj#L485) +### [`fileset-added`](../../2.6.0/boot/core/src/boot/core.clj#L616) ```clojure (fileset-added before after & props) @@ -408,7 +489,7 @@ Returns a new fileset containing only files that were added.
-### [`fileset-changed`](../../2.5.5/boot/core/src/boot/core.clj#L495) +### [`fileset-changed`](../../2.6.0/boot/core/src/boot/core.clj#L626) ```clojure (fileset-changed before after & props) @@ -420,7 +501,7 @@ Returns a new fileset containing only files that were changed.
-### [`fileset-diff`](../../2.5.5/boot/core/src/boot/core.clj#L477) +### [`fileset-diff`](../../2.6.0/boot/core/src/boot/core.clj#L608) ```clojure (fileset-diff before after & props) @@ -435,7 +516,7 @@ or content md5 hash of the files (the default is both).
-### [`fileset-namespaces`](../../2.5.5/boot/core/src/boot/core.clj#L500) +### [`fileset-namespaces`](../../2.6.0/boot/core/src/boot/core.clj#L631) ```clojure (fileset-namespaces fileset) @@ -447,7 +528,7 @@ Returns a set of symbols: the namespaces defined in this fileset.
-### [`fileset-reduce`](../../2.5.5/boot/core/src/boot/core.clj#L872) +### [`fileset-reduce`](../../2.6.0/boot/core/src/boot/core.clj#L1018) ```clojure (fileset-reduce fileset get-files & reducers) @@ -462,7 +543,7 @@ through to the next reducing function.
-### [`fileset-removed`](../../2.5.5/boot/core/src/boot/core.clj#L490) +### [`fileset-removed`](../../2.6.0/boot/core/src/boot/core.clj#L621) ```clojure (fileset-removed before after & props) @@ -474,7 +555,19 @@ Returns a new fileset containing only files that were removed.
-### [`get-env`](../../2.5.5/boot/core/src/boot/core.clj#L641) +### [`get-checkouts`](../../2.6.0/boot/core/src/boot/core.clj#L783) + +```clojure +(get-checkouts) +``` + +``` +FIXME +``` + +
+ +### [`get-env`](../../2.6.0/boot/core/src/boot/core.clj#L790) ```clojure (get-env & [k not-found]) @@ -488,7 +581,7 @@ given. Calling this function with no arguments returns the environment map.
-### [`get-sys-env`](../../2.5.5/boot/core/src/boot/core.clj#L673) +### [`get-sys-env`](../../2.6.0/boot/core/src/boot/core.clj#L822) ```clojure (get-sys-env) (get-sys-env k) (get-sys-env k not-found) @@ -503,7 +596,7 @@ either the system property or environment variable k.
-### [`git-files`](../../2.5.5/boot/core/src/boot/core.clj#L971) +### [`git-files`](../../2.6.0/boot/core/src/boot/core.clj#L1124) ```clojure (git-files & {:keys [untracked]}) @@ -516,7 +609,7 @@ command line `git ls-files`. The :untracked option includes untracked files.
-### [`gpg-decrypt`](../../2.5.5/boot/core/src/boot/core.clj#L936) +### [`gpg-decrypt`](../../2.6.0/boot/core/src/boot/core.clj#L1089) ```clojure (gpg-decrypt path-or-file & {:keys [as]}) @@ -529,7 +622,7 @@ Uses gpg(1) to decrypt a file and returns its contents as a string. The
-### [`init!`](../../2.5.5/boot/core/src/boot/core.clj#L555) +### [`init!`](../../2.6.0/boot/core/src/boot/core.clj#L696) ```clojure (init!) @@ -542,7 +635,7 @@ startup. There should be no need to call this function directly.
-### [`input-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L338) +### [`input-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L406) ```clojure (input-dirs fileset) @@ -554,7 +647,7 @@ Get a list of directories containing files with input roles.
-### [`input-files`](../../2.5.5/boot/core/src/boot/core.clj#L353) +### [`input-files`](../../2.6.0/boot/core/src/boot/core.clj#L421) ```clojure (input-files fileset) @@ -566,7 +659,7 @@ Get a set of TmpFile objects corresponding to files with input role.
-### [`input-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L358) +### [`input-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L426) ```clojure (input-fileset fileset) @@ -578,7 +671,7 @@ FIXME: document
-### [`json-generate`](../../2.5.5/boot/core/src/boot/core.clj#L942) +### [`json-generate`](../../2.6.0/boot/core/src/boot/core.clj#L1095) ```clojure (json-generate x & [opt-map]) @@ -590,7 +683,7 @@ Same as cheshire.core/generate-string.
-### [`json-parse`](../../2.5.5/boot/core/src/boot/core.clj#L948) +### [`json-parse`](../../2.6.0/boot/core/src/boot/core.clj#L1101) ```clojure (json-parse x & [key-fn]) @@ -602,7 +695,7 @@ Same as cheshire.core/parse-string.
-### [`last-file-change`](../../2.5.5/boot/core/src/boot/core.clj#L36) +### [`last-file-change`](../../2.6.0/boot/core/src/boot/core.clj#L38) ``` Last source file watcher update time. @@ -610,7 +703,7 @@ Last source file watcher update time.
-### [`launch-nrepl`](../../2.5.5/boot/core/src/boot/core.clj#L1040) +### [`launch-nrepl`](../../2.6.0/boot/core/src/boot/core.clj#L1215) ```clojure (launch-nrepl & {:keys [pod], :as opts}) @@ -622,7 +715,7 @@ Launches an nREPL server in a pod. See the repl task for options.
-### [`load-data-readers!`](../../2.5.5/boot/core/src/boot/core.clj#L181) +### [`load-data-readers!`](../../2.6.0/boot/core/src/boot/core.clj#L211) ```clojure (load-data-readers!) @@ -634,7 +727,7 @@ Refresh *data-readers* with readers from newly acquired dependencies.
-### [`ls`](../../2.5.5/boot/core/src/boot/core.clj#L373) +### [`ls`](../../2.6.0/boot/core/src/boot/core.clj#L441) ```clojure (ls fileset) @@ -646,7 +739,7 @@ Get a set of TmpFile objects for all files in the fileset.
-### [`merge-env!`](../../2.5.5/boot/core/src/boot/core.clj#L663) +### [`merge-env!`](../../2.6.0/boot/core/src/boot/core.clj#L812) ```clojure (merge-env! & kvs) @@ -661,7 +754,7 @@ Keys whose values aren't collections).
-### [`mv`](../../2.5.5/boot/core/src/boot/core.clj#L404) +### [`mv`](../../2.6.0/boot/core/src/boot/core.clj#L472) ```clojure (mv fileset from-path to-path) @@ -674,7 +767,7 @@ the tmpfile at from-path to to-path, returning a new fileset.
-### [`mv-asset`](../../2.5.5/boot/core/src/boot/core.clj#L429) +### [`mv-asset`](../../2.6.0/boot/core/src/boot/core.clj#L518) ```clojure (mv-asset fileset tmpfiles) @@ -686,7 +779,7 @@ FIXME: document
-### [`mv-resource`](../../2.5.5/boot/core/src/boot/core.clj#L459) +### [`mv-resource`](../../2.6.0/boot/core/src/boot/core.clj#L590) ```clojure (mv-resource fileset tmpfiles) @@ -698,7 +791,7 @@ FIXME: document
-### [`mv-source`](../../2.5.5/boot/core/src/boot/core.clj#L444) +### [`mv-source`](../../2.6.0/boot/core/src/boot/core.clj#L554) ```clojure (mv-source fileset tmpfiles) @@ -710,7 +803,7 @@ FIXME: document
-### [`new-build-at`](../../2.5.5/boot/core/src/boot/core.clj#L35) +### [`new-build-at`](../../2.6.0/boot/core/src/boot/core.clj#L37) ``` Latest build occured at time. @@ -718,7 +811,7 @@ Latest build occured at time.
-### [`new-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L80) +### [`new-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L100) ``` FIXME: document this @@ -726,7 +819,7 @@ FIXME: document this
-### [`not-by-ext`](../../2.5.5/boot/core/src/boot/core.clj#L1020) +### [`not-by-ext`](../../2.6.0/boot/core/src/boot/core.clj#L1195) ```clojure (not-by-ext exts files) @@ -738,7 +831,21 @@ This function is the same as `by-ext` but negated.
-### [`not-by-name`](../../2.5.5/boot/core/src/boot/core.clj#L994) +### [`not-by-meta`](../../2.6.0/boot/core/src/boot/core.clj#L1154) + +```clojure +(not-by-meta preds files) +``` + +``` +Negated version of `by-meta`. + + This function will not unwrap the `File` objects from `TmpFiles`. +``` + +
+ +### [`not-by-name`](../../2.6.0/boot/core/src/boot/core.clj#L1169) ```clojure (not-by-name names files) @@ -750,7 +857,7 @@ This function is the same as `by-name` but negated.
-### [`not-by-path`](../../2.5.5/boot/core/src/boot/core.clj#L1007) +### [`not-by-path`](../../2.6.0/boot/core/src/boot/core.clj#L1182) ```clojure (not-by-path paths files) @@ -762,7 +869,7 @@ This function is the same as `by-path` but negated.
-### [`not-by-re`](../../2.5.5/boot/core/src/boot/core.clj#L1033) +### [`not-by-re`](../../2.6.0/boot/core/src/boot/core.clj#L1208) ```clojure (not-by-re res files) @@ -774,7 +881,7 @@ This function is the same as `by-re` but negated.
-### [`output-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L343) +### [`output-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L411) ```clojure (output-dirs fileset) @@ -786,7 +893,7 @@ FIXME: document this
-### [`output-files`](../../2.5.5/boot/core/src/boot/core.clj#L363) +### [`output-files`](../../2.6.0/boot/core/src/boot/core.clj#L431) ```clojure (output-files fileset) @@ -798,7 +905,7 @@ Get a set of TmpFile objects corresponding to files with output role.
-### [`output-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L368) +### [`output-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L436) ```clojure (output-fileset fileset) @@ -810,7 +917,19 @@ FIXME: document
-### [`post-env!`](../../2.5.5/boot/core/src/boot/core.clj#L586) +### [`patch!`](../../2.6.0/boot/core/src/boot/core.clj#L653) + +```clojure +(patch! dest srcs & {:keys [ignore state link]}) +``` + +``` +Given prev-state +``` + +
+ +### [`post-env!`](../../2.6.0/boot/core/src/boot/core.clj#L724) ``` Event handler called when the env atom is modified. This handler is for @@ -821,7 +940,7 @@ the new directories to the classpath.
-### [`pre-env!`](../../2.5.5/boot/core/src/boot/core.clj#L600) +### [`pre-env!`](../../2.6.0/boot/core/src/boot/core.clj#L739) ``` This multimethod is used to modify how new values are merged into the boot @@ -831,7 +950,7 @@ value associated with the given `key` in the env atom.
-### [`rebuild!`](../../2.5.5/boot/core/src/boot/core.clj#L550) +### [`rebuild!`](../../2.6.0/boot/core/src/boot/core.clj#L691) ```clojure (rebuild!) @@ -843,7 +962,7 @@ Manually trigger build watch.
-### [`replace-task!`](../../2.5.5/boot/core/src/boot/core.clj#L885) +### [`replace-task!`](../../2.6.0/boot/core/src/boot/core.clj#L1031) ```clojure (replace-task! & replacements) @@ -862,7 +981,7 @@ Example:
-### [`reset-build!`](../../2.5.5/boot/core/src/boot/core.clj#L737) +### [`reset-build!`](../../2.6.0/boot/core/src/boot/core.clj#L888) ```clojure (reset-build!) @@ -876,7 +995,7 @@ function should be called before each build iteration.
-### [`reset-fileset`](../../2.5.5/boot/core/src/boot/core.clj#L724) +### [`reset-fileset`](../../2.6.0/boot/core/src/boot/core.clj#L875) ```clojure (reset-fileset & [fileset]) @@ -890,7 +1009,7 @@ fileset containing only the latest project files.
-### [`rm`](../../2.5.5/boot/core/src/boot/core.clj#L385) +### [`rm`](../../2.6.0/boot/core/src/boot/core.clj#L453) ```clojure (rm fileset files) @@ -903,7 +1022,7 @@ does not affect the underlying filesystem in any way.
-### [`set-env!`](../../2.5.5/boot/core/src/boot/core.clj#L648) +### [`set-env!`](../../2.6.0/boot/core/src/boot/core.clj#L797) ```clojure (set-env! & kvs) @@ -920,7 +1039,7 @@ clojure.core/update-in works.
-### [`set-sys-env!`](../../2.5.5/boot/core/src/boot/core.clj#L685) +### [`set-sys-env!`](../../2.6.0/boot/core/src/boot/core.clj#L834) ```clojure (set-sys-env! & kvs) @@ -934,7 +1053,7 @@ to remove the system property.
-### [`sync!`](../../2.5.5/boot/core/src/boot/core.clj#L514) +### [`sync!`](../../2.6.0/boot/core/src/boot/core.clj#L645) ```clojure (sync! dest & srcs) @@ -949,7 +1068,7 @@ instead of copying file contents. File modification times are preserved.
-### [`task-options!`](../../2.5.5/boot/core/src/boot/core.clj#L908) +### [`task-options!`](../../2.6.0/boot/core/src/boot/core.clj#L1054) ```clojure (task-options! & task-option-pairs) @@ -974,10 +1093,10 @@ be used as the new one. For example:
-### [`temp-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L277) +### [`temp-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L345) ```clojure -(temp-dir! & args__594__auto__) +(temp-dir! & args__584__auto__) ``` ``` @@ -986,7 +1105,21 @@ be used as the new one. For example:
-### [`tmp-dir`](../../2.5.5/boot/core/src/boot/core.clj#L304) +### [`template`](../../2.6.0/boot/core/src/boot/core.clj#L1082) + +```clojure +(template form) +``` + +``` +The syntax-quote (aka quasiquote) reader macro as a normal macro. Provides +the unquote ~ and unquote-splicing ~@ metacharacters for templating forms +without performing symbol resolution. +``` + +
+ +### [`tmp-dir`](../../2.6.0/boot/core/src/boot/core.clj#L372) ```clojure (tmp-dir tmpfile) @@ -998,7 +1131,7 @@ Returns the temporary directory containing the tmpfile.
-### [`tmp-dir!`](../../2.5.5/boot/core/src/boot/core.clj#L273) +### [`tmp-dir!`](../../2.6.0/boot/core/src/boot/core.clj#L341) ```clojure (tmp-dir!) @@ -1010,7 +1143,7 @@ Creates a boot-managed temporary directory, returning a java.io.File.
-### [`tmp-file`](../../2.5.5/boot/core/src/boot/core.clj#L310) +### [`tmp-file`](../../2.6.0/boot/core/src/boot/core.clj#L378) ```clojure (tmp-file tmpfile) @@ -1022,7 +1155,7 @@ Returns the java.io.File object for the tmpfile.
-### [`tmp-get`](../../2.5.5/boot/core/src/boot/core.clj#L324) +### [`tmp-get`](../../2.6.0/boot/core/src/boot/core.clj#L392) ```clojure (tmp-get fileset path & [not-found]) @@ -1036,7 +1169,7 @@ not-found is returned, otherwise nil.
-### [`tmp-path`](../../2.5.5/boot/core/src/boot/core.clj#L298) +### [`tmp-path`](../../2.6.0/boot/core/src/boot/core.clj#L366) ```clojure (tmp-path tmpfile) @@ -1048,7 +1181,7 @@ Returns the tmpfile's path relative to the fileset root.
-### [`tmp-time`](../../2.5.5/boot/core/src/boot/core.clj#L316) +### [`tmp-time`](../../2.6.0/boot/core/src/boot/core.clj#L384) ```clojure (tmp-time tmpfile) @@ -1060,10 +1193,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpdir`](../../2.5.5/boot/core/src/boot/core.clj#L308) +### [`tmpdir`](../../2.6.0/boot/core/src/boot/core.clj#L376) ```clojure -(tmpdir & args__594__auto__) +(tmpdir & args__584__auto__) ``` ``` @@ -1072,10 +1205,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpfile`](../../2.5.5/boot/core/src/boot/core.clj#L314) +### [`tmpfile`](../../2.6.0/boot/core/src/boot/core.clj#L382) ```clojure -(tmpfile & args__594__auto__) +(tmpfile & args__584__auto__) ``` ``` @@ -1084,10 +1217,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmpget`](../../2.5.5/boot/core/src/boot/core.clj#L330) +### [`tmpget`](../../2.6.0/boot/core/src/boot/core.clj#L398) ```clojure -(tmpget & args__594__auto__) +(tmpget & args__584__auto__) ``` ``` @@ -1096,10 +1229,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmppath`](../../2.5.5/boot/core/src/boot/core.clj#L302) +### [`tmppath`](../../2.6.0/boot/core/src/boot/core.clj#L370) ```clojure -(tmppath & args__594__auto__) +(tmppath & args__584__auto__) ``` ``` @@ -1108,10 +1241,10 @@ Returns the last modified timestamp for the tmpfile.
-### [`tmptime`](../../2.5.5/boot/core/src/boot/core.clj#L320) +### [`tmptime`](../../2.6.0/boot/core/src/boot/core.clj#L388) ```clojure -(tmptime & args__594__auto__) +(tmptime & args__584__auto__) ``` ``` @@ -1120,7 +1253,7 @@ Returns the last modified timestamp for the tmpfile.
-### [`touch`](../../2.5.5/boot/core/src/boot/core.clj#L966) +### [`touch`](../../2.6.0/boot/core/src/boot/core.clj#L1119) ```clojure (touch f) @@ -1132,7 +1265,7 @@ Same as the Unix touch(1) program.
-### [`user-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L332) +### [`user-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L400) ```clojure (user-dirs fileset) @@ -1145,7 +1278,7 @@ source, resource, or asset paths.
-### [`user-files`](../../2.5.5/boot/core/src/boot/core.clj#L347) +### [`user-files`](../../2.6.0/boot/core/src/boot/core.clj#L415) ```clojure (user-files fileset) @@ -1158,7 +1291,7 @@ the project's source, resource, or asset paths.
-### [`watch-dirs`](../../2.5.5/boot/core/src/boot/core.clj#L524) +### [`watch-dirs`](../../2.6.0/boot/core/src/boot/core.clj#L665) ```clojure (watch-dirs callback dirs & {:keys [debounce]}) @@ -1176,7 +1309,7 @@ tune the watcher sensitivity.
-### [`with-pass-thru`](../../2.5.5/boot/core/src/boot/core.clj#L862) +### [`with-pass-thru`](../../2.6.0/boot/core/src/boot/core.clj#L1008) ```clojure (with-pass-thru bind & body) @@ -1191,7 +1324,7 @@ result is then returned up the handler stack.
-### [`with-post-wrap`](../../2.5.5/boot/core/src/boot/core.clj#L836) +### [`with-post-wrap`](../../2.6.0/boot/core/src/boot/core.clj#L982) ```clojure (with-post-wrap bind & body) @@ -1214,7 +1347,7 @@ where ... are the given body expressions.
-### [`with-pre-wrap`](../../2.5.5/boot/core/src/boot/core.clj#L812) +### [`with-pre-wrap`](../../2.6.0/boot/core/src/boot/core.clj#L958) ```clojure (with-pre-wrap bind & body) @@ -1236,7 +1369,7 @@ where ... are the given body expressions.
-### [`yaml-generate`](../../2.5.5/boot/core/src/boot/core.clj#L954) +### [`yaml-generate`](../../2.6.0/boot/core/src/boot/core.clj#L1107) ```clojure (yaml-generate x) @@ -1248,7 +1381,7 @@ Same as clj-yaml.core/generate-string.
-### [`yaml-parse`](../../2.5.5/boot/core/src/boot/core.clj#L960) +### [`yaml-parse`](../../2.6.0/boot/core/src/boot/core.clj#L1113) ```clojure (yaml-parse x) diff --git a/doc/boot.pod.md b/doc/boot.pod.md index 7e4c9b79..8e5feea3 100644 --- a/doc/boot.pod.md +++ b/doc/boot.pod.md @@ -9,15 +9,15 @@ jar files, and classloaders. ##### Pods - [`call-in*`](#call-in) [`destroy-pod`](#destroy-pod) [`eval-fn-call`](#eval-fn-call) [`eval-in*`](#eval-in) [`get-pods`](#get-pods) [`make-pod`](#make-pod) [`pod-pool`](#pod-pool) [`require-in`](#require-in) [`send!`](#send) [`with-call-in`](#with-call-in) [`with-call-worker`](#with-call-worker) [`with-eval-in`](#with-eval-in) [`with-eval-worker`](#with-eval-worker) + [`call-in*`](#call-in) [`destroy-pod`](#destroy-pod) [`eval-fn-call`](#eval-fn-call) [`eval-in*`](#eval-in) [`get-pods`](#get-pods) [`make-pod`](#make-pod) [`pod-name`](#pod-name) [`pod-pool`](#pod-pool) [`require-in`](#require-in) [`send!`](#send) [`this-pod`](#this-pod) [`with-call-in`](#with-call-in) [`with-call-worker`](#with-call-worker) [`with-eval-in`](#with-eval-in) [`with-eval-worker`](#with-eval-worker) [`with-invoke-in`](#with-invoke-in) [`with-invoke-worker`](#with-invoke-worker) ##### Classpath - [`add-classpath`](#add-classpath) [`add-dependencies`](#add-dependencies) [`add-dependencies-in`](#add-dependencies-in) [`add-dependencies-worker`](#add-dependencies-worker) [`classloader-hierarchy`](#classloader-hierarchy) [`classloader-resources`](#classloader-resources) [`copy-resource`](#copy-resource) [`dependency-loaded?`](#dependency-loaded?) [`get-classpath`](#get-classpath) [`modifiable-classloader?`](#modifiable-classloader?) [`resources`](#resources) [`seal-app-classloader`](#seal-app-classloader) + [`add-classpath`](#add-classpath) [`add-dependencies`](#add-dependencies) [`add-dependencies-in`](#add-dependencies-in) [`add-dependencies-worker`](#add-dependencies-worker) [`classloader-hierarchy`](#classloader-hierarchy) [`classloader-resources`](#classloader-resources) [`copy-resource`](#copy-resource) [`dependency-loaded?`](#dependency-loaded?) [`get-classpath`](#get-classpath) [`modifiable-classloader?`](#modifiable-classloader?) [`resource-last-modified`](#resource-last-modified) [`resources`](#resources) [`seal-app-classloader`](#seal-app-classloader) ##### Dependencies - [`apply-exclusions`](#apply-exclusions) [`apply-global-exclusions`](#apply-global-exclusions) [`canonical-coord`](#canonical-coord) [`copy-dependency-jar-entries`](#copy-dependency-jar-entries) [`default-dependencies`](#default-dependencies) [`dependency-pom-properties`](#dependency-pom-properties) [`dependency-pom-properties-map`](#dependency-pom-properties-map) [`extract-ids`](#extract-ids) [`jars-dep-graph`](#jars-dep-graph) [`jars-in-dep-order`](#jars-in-dep-order) [`outdated`](#outdated) [`resolve-dependencies`](#resolve-dependencies) [`resolve-dependency-jar`](#resolve-dependency-jar) [`resolve-dependency-jars`](#resolve-dependency-jars) [`resolve-nontransitive-dependencies`](#resolve-nontransitive-dependencies) + [`apply-exclusions`](#apply-exclusions) [`apply-global-exclusions`](#apply-global-exclusions) [`canonical-coord`](#canonical-coord) [`coord->map`](#coord->map) [`copy-dependency-jar-entries`](#copy-dependency-jar-entries) [`default-dependencies`](#default-dependencies) [`dependency-pom-properties`](#dependency-pom-properties) [`dependency-pom-properties-map`](#dependency-pom-properties-map) [`extract-ids`](#extract-ids) [`jars-dep-graph`](#jars-dep-graph) [`jars-in-dep-order`](#jars-in-dep-order) [`map->coord`](#map->coord) [`outdated`](#outdated) [`resolve-dependencies`](#resolve-dependencies) [`resolve-dependency-jar`](#resolve-dependency-jar) [`resolve-dependency-jars`](#resolve-dependency-jars) [`resolve-nontransitive-dependencies`](#resolve-nontransitive-dependencies) [`resolve-release-versions`](#resolve-release-versions) ##### Jars @@ -33,11 +33,11 @@ jar files, and classloaders. ##### Deprecated / Internal - [`set-data!`](#set-data) [`set-pod-id!`](#set-pod-id) [`set-pods!`](#set-pods) [`set-worker-pod!`](#set-worker-pod) + [`eval-in-callee`](#eval-in-callee) [`eval-in-caller`](#eval-in-caller) [`set-data!`](#set-data) [`set-pod-id!`](#set-pod-id) [`set-pods!`](#set-pods) [`set-this-pod!`](#set-this-pod) [`set-worker-pod!`](#set-worker-pod) [`with-pod`](#with-pod) [`with-worker`](#with-worker)
-### [`add-classpath`](../../2.5.5/boot/pod/src/boot/pod.clj#L64) +### [`add-classpath`](../../2.6.0/boot/pod/src/boot/pod.clj#L65) ```clojure (add-classpath jar-or-dir) (add-classpath jar-or-dir classloader) @@ -52,7 +52,7 @@ thread's context classloader).
-### [`add-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L480) +### [`add-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L580) ```clojure (add-dependencies env) @@ -65,7 +65,7 @@ jars to the classpath.
-### [`add-dependencies-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L486) +### [`add-dependencies-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L586) ```clojure (add-dependencies-in pod env) @@ -78,7 +78,7 @@ jars to the classpath in the pod.
-### [`add-dependencies-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L493) +### [`add-dependencies-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L593) ```clojure (add-dependencies-worker env) @@ -91,7 +91,7 @@ jars to the classpath in the worker pod.
-### [`add-shutdown-hook!`](../../2.5.5/boot/pod/src/boot/pod.clj#L269) +### [`add-shutdown-hook!`](../../2.6.0/boot/pod/src/boot/pod.clj#L303) ```clojure (add-shutdown-hook! f) @@ -110,7 +110,7 @@ the JVM exits otherwise).
-### [`apply-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L461) +### [`apply-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L561) ```clojure (apply-exclusions excl [p v & opts :as dep]) @@ -123,7 +123,7 @@ vector dep, creating the :exclusions key and deduplicating as necessary.
-### [`apply-global-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L474) +### [`apply-global-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L574) ```clojure (apply-global-exclusions excl deps) @@ -136,7 +136,7 @@ See apply-exclusions.
-### [`call-in*`](../../2.5.5/boot/pod/src/boot/pod.clj#L297) +### [`call-in*`](../../2.6.0/boot/pod/src/boot/pod.clj#L361) ```clojure (call-in* expr) (call-in* pod expr) @@ -161,7 +161,7 @@ objects which are not printable/readable by Clojure.
-### [`caller-namespace`](../../2.5.5/boot/pod/src/boot/pod.clj#L694) +### [`caller-namespace`](../../2.6.0/boot/pod/src/boot/pod.clj#L794) ```clojure (caller-namespace) @@ -174,7 +174,7 @@ caller of the function.
-### [`canonical-coord`](../../2.5.5/boot/pod/src/boot/pod.clj#L399) +### [`canonical-coord`](../../2.6.0/boot/pod/src/boot/pod.clj#L492) ```clojure (canonical-coord [id & more :as coord]) @@ -189,7 +189,7 @@ For example: (canonical-coord '[foo "1.2.3"]) ;=> [foo/foo "1.2.3"]
-### [`classloader-hierarchy`](../../2.5.5/boot/pod/src/boot/pod.clj#L50) +### [`classloader-hierarchy`](../../2.6.0/boot/pod/src/boot/pod.clj#L51) ```clojure (classloader-hierarchy) (classloader-hierarchy tip) @@ -203,7 +203,7 @@ if one is not provided.
-### [`classloader-resources`](../../2.5.5/boot/pod/src/boot/pod.clj#L94) +### [`classloader-resources`](../../2.6.0/boot/pod/src/boot/pod.clj#L95) ```clojure (classloader-resources resource-name) (classloader-resources classloaders resource-name) @@ -219,7 +219,7 @@ circumstances match what clojure.java.io/resource returns.
-### [`concat-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L543) +### [`concat-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L643) ```clojure (concat-merger prev new out) @@ -233,7 +233,21 @@ OutputStream out.
-### [`copy-dependency-jar-entries`](../../2.5.5/boot/pod/src/boot/pod.clj#L600) +### [`coord->map`](../../2.6.0/boot/pod/src/boot/pod.clj#L153) + +```clojure +(coord->map [p v & more]) +``` + +``` +Returns the map representation for the given dependency vector. The map +will include :project and :version keys in addition to any other keys in +the dependency vector (eg., :scope, :exclusions, etc). +``` + +
+ +### [`copy-dependency-jar-entries`](../../2.6.0/boot/pod/src/boot/pod.clj#L700) ```clojure (copy-dependency-jar-entries env outdir coord & regexes) @@ -250,20 +264,21 @@ least one regex will be extracted to outdir.
-### [`copy-resource`](../../2.5.5/boot/pod/src/boot/pod.clj#L194) +### [`copy-resource`](../../2.6.0/boot/pod/src/boot/pod.clj#L218) ```clojure (copy-resource resource-path out-path) ``` ``` -Copies the contents of the jar resource at resource-path to the path or File -out-path on the filesystem. The copy operation is not atomic. +Copies the contents of the classpath resource at resource-path to the path or +File out-path on the filesystem, preserving last modified times when possible. +The copy operation is not atomic. ```
-### [`copy-url`](../../2.5.5/boot/pod/src/boot/pod.clj#L209) +### [`copy-url`](../../2.6.0/boot/pod/src/boot/pod.clj#L238) ```clojure (copy-url url-str out-path & {:keys [cache], :or {cache true}}) @@ -276,7 +291,7 @@ the :cache option is false caching of URLs is disabled.
-### [`data`](../../2.5.5/boot/pod/src/boot/pod.clj#L221) +### [`data`](../../2.6.0/boot/pod/src/boot/pod.clj#L250) ``` Set by boot.App/newCore, may be a ConcurrentHashMap for sharing data between @@ -285,7 +300,7 @@ instances of Boot that are running inside of Boot.
-### [`default-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L685) +### [`default-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L785) ```clojure (default-dependencies deps {:keys [dependencies], :as env}) @@ -298,7 +313,7 @@ favoring dependency versions in env over deps in case of conflict.
-### [`dependency-loaded?`](../../2.5.5/boot/pod/src/boot/pod.clj#L144) +### [`dependency-loaded?`](../../2.6.0/boot/pod/src/boot/pod.clj#L145) ```clojure (dependency-loaded? [project & _]) @@ -312,7 +327,7 @@ isn't on the classpath.
-### [`dependency-pom-properties`](../../2.5.5/boot/pod/src/boot/pod.clj#L152) +### [`dependency-pom-properties`](../../2.6.0/boot/pod/src/boot/pod.clj#L167) ```clojure (dependency-pom-properties coord) @@ -325,7 +340,7 @@ Properties object corresponding to the dependency jar's pom.properties file.
-### [`dependency-pom-properties-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L159) +### [`dependency-pom-properties-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L174) ```clojure (dependency-pom-properties-map coord) @@ -338,7 +353,7 @@ of the contents of the jar's pom.properties file.
-### [`destroy-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L722) +### [`destroy-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L822) ```clojure (destroy-pod pod) @@ -350,7 +365,7 @@ Closes open resources held by the pod, making the pod eligible for GC.
-### [`env`](../../2.5.5/boot/pod/src/boot/pod.clj#L217) +### [`env`](../../2.6.0/boot/pod/src/boot/pod.clj#L246) ``` This pod's boot environment. @@ -358,7 +373,7 @@ This pod's boot environment.
-### [`eval-fn-call`](../../2.5.5/boot/pod/src/boot/pod.clj#L289) +### [`eval-fn-call`](../../2.6.0/boot/pod/src/boot/pod.clj#L323) ```clojure (eval-fn-call [f & args]) @@ -370,7 +385,7 @@ Given an expression of the form (f & args), resolves f and applies f to args.
-### [`eval-in*`](../../2.5.5/boot/pod/src/boot/pod.clj#L351) +### [`eval-in*`](../../2.6.0/boot/pod/src/boot/pod.clj#L419) ```clojure (eval-in* expr) (eval-in* pod expr) @@ -395,7 +410,31 @@ objects which are not printable/readable by Clojure.
-### [`extract-ids`](../../2.5.5/boot/pod/src/boot/pod.clj#L22) +### [`eval-in-callee`](../../2.6.0/boot/pod/src/boot/pod.clj#L472) + +```clojure +(eval-in-callee caller-pod callee-pod expr) +``` + +``` +FIXME: document this +``` + +
+ +### [`eval-in-caller`](../../2.6.0/boot/pod/src/boot/pod.clj#L476) + +```clojure +(eval-in-caller caller-pod callee-pod expr) +``` + +``` +FIXME: document this +``` + +
+ +### [`extract-ids`](../../2.6.0/boot/pod/src/boot/pod.clj#L23) ```clojure (extract-ids sym) @@ -407,7 +446,7 @@ Given a dependency symbol sym, returns a vector of [group-id artifact-id].
-### [`first-wins-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L553) +### [`first-wins-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L653) ```clojure (first-wins-merger prev _ out) @@ -419,7 +458,7 @@ Writes the InputStream prev to the OutputStream out.
-### [`get-classpath`](../../2.5.5/boot/pod/src/boot/pod.clj#L79) +### [`get-classpath`](../../2.6.0/boot/pod/src/boot/pod.clj#L80) ```clojure (get-classpath) (get-classpath classloaders) @@ -438,7 +477,7 @@ at subsets of the current classloader hierarchy, e.g.:
-### [`get-pods`](../../2.5.5/boot/pod/src/boot/pod.clj#L251) +### [`get-pods`](../../2.6.0/boot/pod/src/boot/pod.clj#L285) ```clojure (get-pods name-or-pattern) (get-pods name-or-pattern unique?) @@ -453,7 +492,7 @@ thrown unless exactly one pod matches.
-### [`into-merger`](../../2.5.5/boot/pod/src/boot/pod.clj#L533) +### [`into-merger`](../../2.6.0/boot/pod/src/boot/pod.clj#L633) ```clojure (into-merger prev new out) @@ -466,7 +505,7 @@ the data from new into prev, and writes the result to the OutputStream out.
-### [`jar-entries`](../../2.5.5/boot/pod/src/boot/pod.clj#L521) +### [`jar-entries`](../../2.6.0/boot/pod/src/boot/pod.clj#L621) ```clojure (jar-entries path-or-jarfile & {:keys [cache], :or {cache true}}) @@ -479,7 +518,7 @@ string pairs corresponding to all entries contained the jar contains.
-### [`jar-entries*`](../../2.5.5/boot/pod/src/boot/pod.clj#L499) +### [`jar-entries*`](../../2.6.0/boot/pod/src/boot/pod.clj#L599) ```clojure (jar-entries* path-or-jarfile) @@ -492,7 +531,7 @@ entry in the jar path-or-jarfile, which can be a string or File.
-### [`jar-entries-memoized*`](../../2.5.5/boot/pod/src/boot/pod.clj#L517) +### [`jar-entries-memoized*`](../../2.6.0/boot/pod/src/boot/pod.clj#L617) ``` Memoized version of jar-entries*. @@ -500,7 +539,7 @@ Memoized version of jar-entries*.
-### [`jars-dep-graph`](../../2.5.5/boot/pod/src/boot/pod.clj#L585) +### [`jars-dep-graph`](../../2.6.0/boot/pod/src/boot/pod.clj#L685) ```clojure (jars-dep-graph env) @@ -513,7 +552,7 @@ boot environment map env, including transitive dependencies.
-### [`jars-in-dep-order`](../../2.5.5/boot/pod/src/boot/pod.clj#L591) +### [`jars-in-dep-order`](../../2.6.0/boot/pod/src/boot/pod.clj#L691) ```clojure (jars-in-dep-order env) @@ -529,7 +568,7 @@ before jar B in the returned list.
-### [`lifecycle-pool`](../../2.5.5/boot/pod/src/boot/pod.clj#L621) +### [`lifecycle-pool`](../../2.6.0/boot/pod/src/boot/pod.clj#L721) ```clojure (lifecycle-pool size create destroy & {:keys [priority]}) @@ -563,7 +602,7 @@ or :refresh, or no arguments.
-### [`make-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L705) +### [`make-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L805) ```clojure (make-pod) (make-pod {:keys [directories dependencies], :as env}) @@ -576,7 +615,21 @@ may be given to initialize the pod with dependencies, directories, etc.
-### [`modifiable-classloader?`](../../2.5.5/boot/pod/src/boot/pod.clj#L57) +### [`map->coord`](../../2.6.0/boot/pod/src/boot/pod.clj#L160) + +```clojure +(map->coord {:keys [project version], :as more}) +``` + +``` +Returns the dependency vector for the given map representation. The project +and version will be taken from the values of the :project and :version keys +and all other keys will be appended pairwise. +``` + +
+ +### [`modifiable-classloader?`](../../2.6.0/boot/pod/src/boot/pod.clj#L58) ```clojure (modifiable-classloader? cl) @@ -590,7 +643,7 @@ be modified.
-### [`non-caching-url-input-stream`](../../2.5.5/boot/pod/src/boot/pod.clj#L202) +### [`non-caching-url-input-stream`](../../2.6.0/boot/pod/src/boot/pod.clj#L231) ```clojure (non-caching-url-input-stream url-str) @@ -604,7 +657,7 @@ may change.
-### [`outdated`](../../2.5.5/boot/pod/src/boot/pod.clj#L444) +### [`outdated`](../../2.6.0/boot/pod/src/boot/pod.clj#L544) ```clojure (outdated env & {:keys [snapshots]}) @@ -619,7 +672,7 @@ only release versions will be considered.
-### [`pod-id`](../../2.5.5/boot/pod/src/boot/pod.clj#L230) +### [`pod-id`](../../2.6.0/boot/pod/src/boot/pod.clj#L259) ``` Each pod is numbered in the order in which it was created. @@ -627,7 +680,20 @@ Each pod is numbered in the order in which it was created.
-### [`pod-pool`](../../2.5.5/boot/pod/src/boot/pod.clj#L729) +### [`pod-name`](../../2.6.0/boot/pod/src/boot/pod.clj#L353) + +```clojure +(pod-name pod) (pod-name pod new-name) +``` + +``` +Returns pod's name if called with one argument, sets pod's name to new-name +and returns new-name if called with two arguments. +``` + +
+ +### [`pod-pool`](../../2.6.0/boot/pod/src/boot/pod.clj#L829) ```clojure (pod-pool env & {:keys [size init destroy]}) @@ -669,7 +735,7 @@ Options:
-### [`pods`](../../2.5.5/boot/pod/src/boot/pod.clj#L226) +### [`pods`](../../2.6.0/boot/pod/src/boot/pod.clj#L255) ``` A WeakHashMap whose keys are all of the currently running pods. @@ -677,7 +743,7 @@ A WeakHashMap whose keys are all of the currently running pods.
-### [`pom-properties`](../../2.5.5/boot/pod/src/boot/pod.clj#L123) +### [`pom-properties`](../../2.6.0/boot/pod/src/boot/pod.clj#L124) ```clojure (pom-properties jarpath) @@ -691,7 +757,7 @@ multiple pom.properties files are present in the jar.
-### [`pom-properties-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L165) +### [`pom-properties-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L180) ```clojure (pom-properties-map prop-or-jarpath) @@ -704,7 +770,7 @@ pom-or-jarpath is either a slurpable thing or a Properties object.
-### [`pom-xml`](../../2.5.5/boot/pod/src/boot/pod.clj#L175) +### [`pom-xml`](../../2.6.0/boot/pod/src/boot/pod.clj#L190) ```clojure (pom-xml jarpath) (pom-xml jarpath pompath) @@ -719,7 +785,7 @@ resource path of the pom.xml file in the jar.
-### [`pom-xml-map`](../../2.5.5/boot/pod/src/boot/pod.clj#L339) +### [`pom-xml-map`](../../2.6.0/boot/pod/src/boot/pod.clj#L407) ```clojure (pom-xml-map jarpath) (pom-xml-map jarpath pompath) @@ -734,7 +800,7 @@ from the jar by the resource path specified by pompath.
-### [`require-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L392) +### [`require-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L465) ```clojure (require-in pod ns) @@ -746,7 +812,7 @@ Evaluates (require 'ns) in the pod. Avoid this function.
-### [`resolve-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L408) +### [`resolve-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L501) ```clojure (resolve-dependencies env) @@ -761,7 +827,7 @@ dependencies includes all transitive dependencies.
-### [`resolve-dependency-jar`](../../2.5.5/boot/pod/src/boot/pod.clj#L436) +### [`resolve-dependency-jar`](../../2.6.0/boot/pod/src/boot/pod.clj#L536) ```clojure (resolve-dependency-jar env coord) @@ -774,7 +840,7 @@ by coord, given the boot environment configuration env.
-### [`resolve-dependency-jars`](../../2.5.5/boot/pod/src/boot/pod.clj#L416) +### [`resolve-dependency-jars`](../../2.6.0/boot/pod/src/boot/pod.clj#L516) ```clojure (resolve-dependency-jars env & [ignore-clj?]) @@ -790,7 +856,7 @@ BOOT_CLOJURE_NAME environment setting, which defaults to org.clojure.clojure).
-### [`resolve-nontransitive-dependencies`](../../2.5.5/boot/pod/src/boot/pod.clj#L429) +### [`resolve-nontransitive-dependencies`](../../2.6.0/boot/pod/src/boot/pod.clj#L529) ```clojure (resolve-nontransitive-dependencies env dep) @@ -804,7 +870,35 @@ dependencies of dep's dependencies).
-### [`resources`](../../2.5.5/boot/pod/src/boot/pod.clj#L106) +### [`resolve-release-versions`](../../2.6.0/boot/pod/src/boot/pod.clj#L509) + +```clojure +(resolve-release-versions env) +``` + +``` +Given environment map env, replaces the versions of dependencies that are +specified with the special Maven RELEASE version with the concrete versions +of the resolved dependencies. +``` + +
+ +### [`resource-last-modified`](../../2.6.0/boot/pod/src/boot/pod.clj#L209) + +```clojure +(resource-last-modified resource-path) +``` + +``` +Returns the last modified time (long, milliseconds since epoch) of the +classpath resource at resource-path. A result of 0 usually indicates that +the modification time was not available for this resource. +``` + +
+ +### [`resources`](../../2.6.0/boot/pod/src/boot/pod.clj#L107) ```clojure (resources resource-name) (resources classloaders resource-name) @@ -820,7 +914,7 @@ eturns.
-### [`seal-app-classloader`](../../2.5.5/boot/pod/src/boot/pod.clj#L28) +### [`seal-app-classloader`](../../2.6.0/boot/pod/src/boot/pod.clj#L29) ```clojure (seal-app-classloader) @@ -845,7 +939,7 @@ be needed in client code under normal circumstances.
-### [`send!`](../../2.5.5/boot/pod/src/boot/pod.clj#L283) +### [`send!`](../../2.6.0/boot/pod/src/boot/pod.clj#L317) ```clojure (send! form) @@ -857,7 +951,7 @@ This is ALPHA status, it may change, be renamed, or removed.
-### [`set-data!`](../../2.5.5/boot/pod/src/boot/pod.clj#L247) +### [`set-data!`](../../2.6.0/boot/pod/src/boot/pod.clj#L280) ```clojure (set-data! x) @@ -869,7 +963,7 @@ FIXME: document this
-### [`set-pod-id!`](../../2.5.5/boot/pod/src/boot/pod.clj#L248) +### [`set-pod-id!`](../../2.6.0/boot/pod/src/boot/pod.clj#L281) ```clojure (set-pod-id! x) @@ -881,7 +975,7 @@ FIXME: document this
-### [`set-pods!`](../../2.5.5/boot/pod/src/boot/pod.clj#L246) +### [`set-pods!`](../../2.6.0/boot/pod/src/boot/pod.clj#L279) ```clojure (set-pods! x) @@ -893,7 +987,19 @@ FIXME: document this
-### [`set-worker-pod!`](../../2.5.5/boot/pod/src/boot/pod.clj#L249) +### [`set-this-pod!`](../../2.6.0/boot/pod/src/boot/pod.clj#L282) + +```clojure +(set-this-pod! x) +``` + +``` +FIXME: document this +``` + +
+ +### [`set-worker-pod!`](../../2.6.0/boot/pod/src/boot/pod.clj#L283) ```clojure (set-worker-pod! x) @@ -905,7 +1011,7 @@ FIXME: document this
-### [`shutdown-hooks`](../../2.5.5/boot/pod/src/boot/pod.clj#L239) +### [`shutdown-hooks`](../../2.6.0/boot/pod/src/boot/pod.clj#L272) ``` Atom containing shutdown hooks to be performed at exit. This is used instead @@ -916,7 +1022,7 @@ boot. See #'boot.pod/add-shutdown-hook! for more info.
-### [`standard-jar-exclusions`](../../2.5.5/boot/pod/src/boot/pod.clj#L527) +### [`standard-jar-exclusions`](../../2.6.0/boot/pod/src/boot/pod.clj#L627) ``` Entries matching these Patterns will not be extracted from jars when they @@ -925,7 +1031,7 @@ are exploded during uberjar construction.
-### [`standard-jar-mergers`](../../2.5.5/boot/pod/src/boot/pod.clj#L558) +### [`standard-jar-mergers`](../../2.6.0/boot/pod/src/boot/pod.clj#L658) ``` A vector containing vectors of the form [ ]. These @@ -935,7 +1041,15 @@ or creating jar files. See boot.task.built-in/uber for more info.
-### [`unpack-jar`](../../2.5.5/boot/pod/src/boot/pod.clj#L566) +### [`this-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L263) + +``` +A WeakReference to this pod's shim instance. +``` + +
+ +### [`unpack-jar`](../../2.6.0/boot/pod/src/boot/pod.clj#L666) ```clojure (unpack-jar jar-path dest-dir & opts) @@ -950,7 +1064,7 @@ be preserved. Files will not be written atomically.
-### [`with-call-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L321) +### [`with-call-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L385) ```clojure (with-call-in pod expr) @@ -964,11 +1078,15 @@ These will be evaluated in the calling scope and substituted in the template like the ` (syntax-quote) reader macro. Note: Unlike syntax-quote, no name resolution is done on the template forms. + +Note2: The macro returned value will be nil unless it is +printable/readable. For instance, returning File objects will not work +as they are not printable/readable by Clojure. ```
-### [`with-call-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L334) +### [`with-call-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L402) ```clojure (with-call-worker expr) @@ -980,7 +1098,7 @@ Like with-call-in, evaluating expr in the worker pod.
-### [`with-eval-in`](../../2.5.5/boot/pod/src/boot/pod.clj#L375) +### [`with-eval-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L443) ```clojure (with-eval-in pod & body) @@ -992,12 +1110,17 @@ to the caller. The expr may be a template containing the ~ (unqupte) and ~@ (unquote-splicing) reader macros. These will be evaluated in the calling scope and substituted in the template like the ` (syntax-quote) reader macro. -Note: Unlike syntax-quote, no name resolution is done on the template forms. +Note: Unlike syntax-quote, no name resolution is done on the template +forms. + +Note2: The macro returned value will be nil unless it is +printable/readable. For instance, returning File objects will not work +as they are not printable/readable by Clojure. ```
-### [`with-eval-worker`](../../2.5.5/boot/pod/src/boot/pod.clj#L387) +### [`with-eval-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L460) ```clojure (with-eval-worker & body) @@ -1009,7 +1132,64 @@ Like with-eval-in, evaluating expr in the worker pod.
-### [`worker-pod`](../../2.5.5/boot/pod/src/boot/pod.clj#L234) +### [`with-invoke-in`](../../2.6.0/boot/pod/src/boot/pod.clj#L331) + +```clojure +(with-invoke-in pod [sym & args]) +``` + +``` +Given a pod, a fully-qualified symbol sym, and args which are Java objects, +invokes the function denoted by sym with the given args. This is a low-level +interface--args are not serialized before being passed to the pod and the +result is not deserialized before being returned. Passing Clojure objects as +arguments or returning Clojure objects from the pod will result in undefined +behavior. + +This macro correctly handles the case where pod is the current pod without +thread binding issues: in this case the invocation will be done in another +thread. +``` + +
+ +### [`with-invoke-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L348) + +```clojure +(with-invoke-worker [sym & args]) +``` + +``` +Like with-invoke-in, invoking the function in the worker pod. +``` + +
+ +### [`with-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L482) + +```clojure +(with-pod pod & body) +``` + +``` +FIXME: document this +``` + +
+ +### [`with-worker`](../../2.6.0/boot/pod/src/boot/pod.clj#L488) + +```clojure +(with-worker & body) +``` + +``` +FIXME: document this +``` + +
+ +### [`worker-pod`](../../2.6.0/boot/pod/src/boot/pod.clj#L267) ``` A reference to the boot worker pod. All pods share access to the worker diff --git a/doc/boot.task.built-in.md b/doc/boot.task.built-in.md index 1db98f6b..200696a2 100644 --- a/doc/boot.task.built-in.md +++ b/doc/boot.task.built-in.md @@ -2,11 +2,37 @@ Boot built-in tasks. -[`add-repo`](#add-repo) [`aot`](#aot) [`checkout`](#checkout) [`help`](#help) [`install`](#install) [`jar`](#jar) [`javac`](#javac) [`pom`](#pom) [`push`](#push) [`repl`](#repl) [`show`](#show) [`sift`](#sift) [`speak`](#speak) [`target`](#target) [`uber`](#uber) [`wait`](#wait) [`war`](#war) [`watch`](#watch) [`web`](#web) [`zip`](#zip) +##### Info + + [`help`](#help) [`show`](#show) + +##### Develop + + [`notify`](#notify) [`repl`](#repl) [`speak`](#speak) [`wait`](#wait) [`watch`](#watch) + +##### Fileset + + [`add-repo`](#add-repo) [`sift`](#sift) [`uber`](#uber) + +##### Build + + [`aot`](#aot) [`javac`](#javac) + +##### Package + + [`jar`](#jar) [`pom`](#pom) [`war`](#war) [`web`](#web) [`zip`](#zip) + +##### Deploy + + [`install`](#install) [`push`](#push) [`target`](#target) + +##### Deprecated + + [`checkout`](#checkout)
-### [`add-repo`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L406) +### [`add-repo`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L497) ```clojure (add-repo & {:keys [help untracked ref], :as *opts*}) @@ -26,7 +52,7 @@ Keyword Args:
-### [`aot`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L546) +### [`aot`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L645) ```clojure (aot & {:keys [help all namespace], :as *opts*}) @@ -43,14 +69,14 @@ Keyword Args:
-### [`checkout`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L69) +### [`checkout`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L75) ```clojure (checkout & {:keys [help dependencies], :as *opts*}) ``` ``` -Checkout dependencies task. +Checkout dependencies task. DEPRECATED. This task facilitates working on a project and its dependencies at the same time, by extracting the dependency jar contents into the fileset. Transitive @@ -74,7 +100,7 @@ Keyword Args:
-### [`help`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L30) +### [`help`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L31) ```clojure (help & {:keys [help], :as *opts*}) @@ -89,7 +115,7 @@ Keyword Args:
-### [`install`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L678) +### [`install`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L777) ```clojure (install & {:keys [help file pom], :as *opts*}) @@ -138,7 +164,7 @@ Keyword Args:
-### [`jar`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L608) +### [`jar`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L707) ```clojure (jar & {:keys [help file manifest main], :as *opts*}) @@ -156,7 +182,7 @@ Keyword Args:
-### [`javac`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L566) +### [`javac`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L665) ```clojure (javac & {:keys [help options], :as *opts*}) @@ -172,10 +198,61 @@ Keyword Args:
-### [`pom`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L315) +### [`notify`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L175) + +```clojure +(notify & {:keys [help audible visual audible-notify-fn visual-notify-fn theme soundfiles messages title icon uid], :as *opts*}) +``` + +``` +Aural and visual notifications during build. + +Default audio themes: system (the default), ordinance, pillsbury, +and woodblock. New themes can be included via jar dependency with +the sound files as resources: + + boot + └── notify + ├── _failure.mp3 + ├── _success.mp3 + └── _warning.mp3 + +Sound files specified individually take precedence over theme sounds. + +For visual notifications, there is a default implementation that +tries to use the `terminal-notifier' program on OS X systems, and +the `notify-send' program on Linux systems. + +You can also supply custom notification functions via the *-notify-fn +options. Both are functions that take one argument which is a map of +options. + +The audible notification function will receive a map with three keys +- :type, :file, and :theme. + +The visual notification function will receive a map with four keys +- :title, :uid, :icon, and :message. + +Keyword Args: + :help bool Print this help info. + :audible bool Play an audible notification + :visual bool Display a visual notification + :audible-notify-fn sym A function to be used for audible notifications in place of the default method. + :visual-notify-fn sym A function to be used for visual notifications in place of the default method + :theme str The name of the audible notification sound theme + :soundfiles {kw str} Sound files overriding theme sounds. Keys can be :success, :warning or :failure + :messages {kw str} Templates overriding default messages. Keys can be :success, :warning or :failure + :title str Title of the notification + :icon str Full path of the file used as notification icon + :uid str Unique ID identifying this boot process +``` + +
+ +### [`pom`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L399) ```clojure -(pom & {:keys [help project version description url scm license developers dependencies], :as *opts*}) +(pom & {:keys [help project version description classifier packaging url scm license developers dependencies], :as *opts*}) ``` ``` @@ -188,6 +265,8 @@ Keyword Args: :project sym The project id (eg. foo/bar). :version str The project version. :description str The project description. + :classifier str The project classifier. + :packaging str The project packaging type, i.e. war, pom :url str The project homepage url. :scm {kw str} The project scm map (KEY is one of url, tag, connection, developerConnection). :license {str str} The map {name url} of project licenses. @@ -197,7 +276,7 @@ Keyword Args:
-### [`push`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L727) +### [`push`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L826) ```clojure (push & {:keys [help file pom file-regex gpg-sign gpg-user-id gpg-keyring gpg-passphrase repo repo-map tag ensure-branch ensure-clean ensure-release ensure-snapshot ensure-tag ensure-version], :as *opts*}) @@ -237,7 +316,7 @@ Keyword Args:
-### [`repl`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L270) +### [`repl`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L354) ```clojure (repl & {:keys [help server client eval bind host init skip-init port pod init-ns middleware handler], :as *opts*}) @@ -275,10 +354,10 @@ Keyword Args:
-### [`show`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L164) +### [`show`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L245) ```clojure -(show & {:keys [help fake-classpath classpath deps env fileset list-pods pedantic pods update-snapshots updates], :as *opts*}) +(show & {:keys [help fake-classpath classpath deps env fileset list-pods pedantic pods update-snapshots updates verify-deps], :as *opts*}) ``` ``` @@ -296,11 +375,12 @@ Keyword Args: :pods regex The name filter used to select which pods to inspect. :update-snapshots bool Include snapshot versions in updates searches. :updates bool Print newer releases of outdated dependencies. + :verify-deps bool Include signature status of each dependency in graph. ```
-### [`sift`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L346) +### [`sift`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L437) ```clojure (sift & {:keys [help to-asset to-resource to-source add-asset add-resource add-source add-jar with-meta add-meta move include invert], :as *opts*}) @@ -363,7 +443,7 @@ Keyword Args:
-### [`speak`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L121) +### [`speak`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L131) ```clojure (speak & {:keys [help theme success warning failure], :as *opts*}) @@ -372,8 +452,9 @@ Keyword Args: ``` Audible notifications during build. -Default themes: system (the default), ordinance, and woodblock. New themes -can be included via jar dependency with the sound files as resources: +Default themes: system (the default), ordinance, pillsbury, and +woodblock. New themes can be included via jar dependency with the +sound files as resources: boot └── notify @@ -393,7 +474,7 @@ Keyword Args:
-### [`target`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L214) +### [`target`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L296) ```clojure (target & {:keys [help dir no-link no-clean], :as *opts*}) @@ -411,7 +492,7 @@ Keyword Args:
-### [`uber`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L423) +### [`uber`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L514) ```clojure (uber & {:keys [help as-jars include-scope exclude-scope include exclude merge], :as *opts*}) @@ -478,7 +559,7 @@ Keyword Args:
-### [`wait`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L203) +### [`wait`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L285) ```clojure (wait & {:keys [help time], :as *opts*}) @@ -496,7 +577,7 @@ Keyword Args:
-### [`war`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L639) +### [`war`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L738) ```clojure (war & {:keys [help file], :as *opts*}) @@ -512,7 +593,7 @@ Keyword Args:
-### [`watch`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L225) +### [`watch`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L307) ```clojure (watch & {:keys [help quiet verbose manual], :as *opts*}) @@ -532,7 +613,7 @@ Keyword Args:
-### [`web`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L512) +### [`web`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L611) ```clojure (web & {:keys [help serve create destroy context-create context-destroy], :as *opts*}) @@ -554,7 +635,7 @@ Keyword Args:
-### [`zip`](../../2.5.5/boot/core/src/boot/task/built_in.clj#L663) +### [`zip`](../../2.6.0/boot/core/src/boot/task/built_in.clj#L762) ```clojure (zip & {:keys [help file], :as *opts*}) diff --git a/doc/boot.util.md b/doc/boot.util.md index 334812d2..dd326939 100644 --- a/doc/boot.util.md +++ b/doc/boot.util.md @@ -17,11 +17,11 @@ life easier in Boot scripts. ##### Logging - [`dbug`](#dbug) [`fail`](#fail) [`info`](#info) [`warn`](#warn) [`warn-deprecated`](#warn-deprecated) + [`dbug`](#dbug) [`dbug*`](#dbug) [`fail`](#fail) [`info`](#info) [`warn`](#warn) [`warn-deprecated`](#warn-deprecated) ##### Useful Macros - [`do-while-let`](#do-while-let) [`dotoseq`](#dotoseq) [`guard`](#guard) [`while-let`](#while-let) [`with-err-str`](#with-err-str) [`with-let`](#with-let) [`with-resolve`](#with-resolve) [`with-rethrow`](#with-rethrow) [`without-exiting`](#without-exiting) + [`do-while-let`](#do-while-let) [`dotoseq`](#dotoseq) [`extends-protocol`](#extends-protocol) [`guard`](#guard) [`while-let`](#while-let) [`with-err-str`](#with-err-str) [`with-let`](#with-let) [`with-resolve`](#with-resolve) [`with-rethrow`](#with-rethrow) [`without-exiting`](#without-exiting) ##### Printing @@ -29,11 +29,11 @@ life easier in Boot scripts. ##### Miscellaneous - [`auto-flush`](#auto-flush) [`bind-syms`](#bind-syms) [`dep-as-map`](#dep-as-map) [`extract-ids`](#extract-ids) [`index-of`](#index-of) [`jarname`](#jarname) [`let-assert-keys`](#let-assert-keys) [`path->ns`](#path->ns) [`read-string-all`](#read-string-all) [`with-semaphore`](#with-semaphore) [`with-semaphore-noblock`](#with-semaphore-noblock) + [`auto-flush`](#auto-flush) [`bind-syms`](#bind-syms) [`dep-as-map`](#dep-as-map) [`extract-ids`](#extract-ids) [`index-of`](#index-of) [`jarname`](#jarname) [`let-assert-keys`](#let-assert-keys) [`map-as-dep`](#map-as-dep) [`path->ns`](#path->ns) [`read-string-all`](#read-string-all) [`with-semaphore`](#with-semaphore) [`with-semaphore-noblock`](#with-semaphore-noblock)
-### [`*colorize?*`](../../2.5.5/boot/pod/src/boot/util.clj#L45) +### [`*colorize?*`](../../2.6.0/boot/pod/src/boot/util.clj#L45) ``` Atom containing the value that determines whether ANSI colors escape codes @@ -42,7 +42,7 @@ will be printed with boot output.
-### [`*sh-dir*`](../../2.5.5/boot/pod/src/boot/util.clj#L314) +### [`*sh-dir*`](../../2.6.0/boot/pod/src/boot/util.clj#L377) ``` The directory to use as CWD for shell commands. @@ -50,7 +50,7 @@ The directory to use as CWD for shell commands.
-### [`*verbosity*`](../../2.5.5/boot/pod/src/boot/util.clj#L31) +### [`*verbosity*`](../../2.6.0/boot/pod/src/boot/util.clj#L31) ``` Atom containing the verbosity level, 1 is lowest, 3 highest. Level 2 @@ -68,7 +68,7 @@ Levels:
-### [`auto-flush`](../../2.5.5/boot/pod/src/boot/util.clj#L251) +### [`auto-flush`](../../2.6.0/boot/pod/src/boot/util.clj#L305) ```clojure (auto-flush writer) @@ -82,7 +82,7 @@ boot exits, even if output was written from a background thread.
-### [`bind-syms`](../../2.5.5/boot/pod/src/boot/util.clj#L293) +### [`bind-syms`](../../2.6.0/boot/pod/src/boot/util.clj#L356) ```clojure (bind-syms form) @@ -94,7 +94,7 @@ Returns the names bound in the given destructuring form.
-### [`colorize?-system-default`](../../2.5.5/boot/pod/src/boot/util.clj#L21) +### [`colorize?-system-default`](../../2.6.0/boot/pod/src/boot/util.clj#L21) ```clojure (colorize?-system-default) @@ -111,7 +111,7 @@ turn it off.
-### [`dbug`](../../2.5.5/boot/pod/src/boot/util.clj#L57) +### [`dbug`](../../2.6.0/boot/pod/src/boot/util.clj#L65) ```clojure (dbug & more) @@ -120,11 +120,27 @@ turn it off. ``` Print DEBUG level message. Arguments of the form fmt & args suitable for passing to clojure.core/format. + +Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod +creation or log level won't be affected. ```
-### [`dep-as-map`](../../2.5.5/boot/pod/src/boot/util.clj#L274) +### [`dbug*`](../../2.6.0/boot/pod/src/boot/util.clj#L57) + +```clojure +(dbug* fmt & args) +``` + +``` +Macro version of boot.util/dbug, arguments are only evaluated when the +message will be printed (i.e., verbosity level >= 2). +``` + +
+ +### [`dep-as-map`](../../2.6.0/boot/pod/src/boot/util.clj#L328) ```clojure (dep-as-map [project version & kvs]) @@ -137,7 +153,7 @@ keys plus any modifiers (eg. :scope, :exclusions, etc).
-### [`do-while-let`](../../2.5.5/boot/pod/src/boot/util.clj#L126) +### [`do-while-let`](../../2.6.0/boot/pod/src/boot/util.clj#L165) ```clojure (do-while-let [binding test] & body) @@ -149,7 +165,7 @@ Like while-let, except that the body is executed at least once.
-### [`dosh`](../../2.5.5/boot/pod/src/boot/util.clj#L330) +### [`dosh`](../../2.6.0/boot/pod/src/boot/util.clj#L393) ```clojure (dosh & args) @@ -163,7 +179,7 @@ stdout and stderr as it is produced.
-### [`dotoseq`](../../2.5.5/boot/pod/src/boot/util.clj#L133) +### [`dotoseq`](../../2.6.0/boot/pod/src/boot/util.clj#L172) ```clojure (dotoseq obj seq-exprs & body) @@ -180,7 +196,7 @@ A cross between doto and doseq. For example:
-### [`exit-error`](../../2.5.5/boot/pod/src/boot/util.clj#L173) +### [`exit-error`](../../2.6.0/boot/pod/src/boot/util.clj#L212) ```clojure (exit-error & body) @@ -189,14 +205,17 @@ A cross between doto and doseq. For example: ``` Binds *out* to *err*, evaluates the body, and exits with non-zero status. -Note: This macro does not call System.exit(), because this instance of boot -may be nested in another boot instance. Instead a special method on boot.App -is called which handles the exit behavior (calling shutdown hooks etc.). + Notes: + * This is the preferred method for returning an exit code != 0, this + method returns 1. + * This macro does not call System.exit(), because this instance of boot + may be nested in another boot instance. Instead a special method on boot.App + is called which handles the exit behavior (calling shutdown hooks etc.). ```
-### [`exit-ok`](../../2.5.5/boot/pod/src/boot/util.clj#L184) +### [`exit-ok`](../../2.6.0/boot/pod/src/boot/util.clj#L226) ```clojure (exit-ok & body) @@ -205,14 +224,35 @@ is called which handles the exit behavior (calling shutdown hooks etc.). ``` Evaluates the body, and exits with non-zero status. -Note: This macro does not call System.exit(), because this instance of boot -may be nested in another boot instance. Instead a special method on boot.App -is called which handles the exit behavior (calling shutdown hooks etc.). + Notes: + * Boot's main explicitly wraps user tasks in exit-ok so that in general + it is not necessary to call it for exiting with 0. + * This macro does not call System.exit(), because this instance of boot + may be nested in another boot instance. Instead a special method on boot.App + is called which handles the exit behavior (calling shutdown hooks etc.). +``` + +
+ +### [`extends-protocol`](../../2.6.0/boot/pod/src/boot/util.clj#L112) + +```clojure +(extends-protocol protocol & specs) +``` + +``` +Like extend-protocol but allows specifying multiple classes for each of the +implementations: + + (extends-protocol IFoo + clojure.lang.MapEntry ; <-- this is the difference, multiple + clojure.lang.PersistentVector ; <-- classes per implementation + (-foo [x] (into [] (map bar x)))) ```
-### [`extract-ids`](../../2.5.5/boot/pod/src/boot/util.clj#L267) +### [`extract-ids`](../../2.6.0/boot/pod/src/boot/util.clj#L321) ```clojure (extract-ids sym) @@ -225,7 +265,7 @@ non-namespaced symbols have group-id the same as artifact-id.
-### [`fail`](../../2.5.5/boot/pod/src/boot/util.clj#L75) +### [`fail`](../../2.6.0/boot/pod/src/boot/util.clj#L92) ```clojure (fail & more) @@ -234,11 +274,14 @@ non-namespaced symbols have group-id the same as artifact-id. ``` Print ERROR level message. Arguments of the form fmt & args suitable for passing to clojure.core/format. + +Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod +creation or log level won't be affected. ```
-### [`guard`](../../2.5.5/boot/pod/src/boot/util.clj#L160) +### [`guard`](../../2.6.0/boot/pod/src/boot/util.clj#L199) ```clojure (guard expr & [default]) @@ -251,7 +294,7 @@ not given) if an exception is thrown, otherwise returns the result.
-### [`index-of`](../../2.5.5/boot/pod/src/boot/util.clj#L288) +### [`index-of`](../../2.6.0/boot/pod/src/boot/util.clj#L351) ```clojure (index-of v val) @@ -263,7 +306,7 @@ Find the index of val in the sequential collection v, or nil if not found.
-### [`info`](../../2.5.5/boot/pod/src/boot/util.clj#L63) +### [`info`](../../2.6.0/boot/pod/src/boot/util.clj#L74) ```clojure (info & more) @@ -272,11 +315,14 @@ Find the index of val in the sequential collection v, or nil if not found. ``` Print INFO level message. Arguments of the form fmt & args suitable for passing to clojure.core/format. + +Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod +creation or log level won't be affected. ```
-### [`jarname`](../../2.5.5/boot/pod/src/boot/util.clj#L282) +### [`jarname`](../../2.6.0/boot/pod/src/boot/util.clj#L345) ```clojure (jarname project version) @@ -289,7 +335,7 @@ symbol and version.
-### [`let-assert-keys`](../../2.5.5/boot/pod/src/boot/util.clj#L150) +### [`let-assert-keys`](../../2.6.0/boot/pod/src/boot/util.clj#L189) ```clojure (let-assert-keys binding & body) @@ -302,7 +348,21 @@ is missing.
-### [`path->ns`](../../2.5.5/boot/pod/src/boot/util.clj#L245) +### [`map-as-dep`](../../2.6.0/boot/pod/src/boot/util.clj#L336) + +```clojure +(map-as-dep {:keys [project version], :as dep-map}) +``` + +``` +Returns the given dependency vector with :project and :version put at +index 0 and 1 respectively and modifiers (eg. :scope, :exclusions, +etc) next. +``` + +
+ +### [`path->ns`](../../2.6.0/boot/pod/src/boot/util.clj#L299) ```clojure (path->ns path) @@ -314,7 +374,7 @@ Returns the namespace symbol corresponding to the source file path.
-### [`pp*`](../../2.5.5/boot/pod/src/boot/util.clj#L299) +### [`pp*`](../../2.6.0/boot/pod/src/boot/util.clj#L362) ```clojure (pp* expr) @@ -326,7 +386,7 @@ Pretty-print expr using the code dispatch.
-### [`pp-str`](../../2.5.5/boot/pod/src/boot/util.clj#L304) +### [`pp-str`](../../2.6.0/boot/pod/src/boot/util.clj#L367) ```clojure (pp-str expr) @@ -338,7 +398,7 @@ Pretty-print expr to a string using the code dispatch.
-### [`print-ex`](../../2.5.5/boot/pod/src/boot/util.clj#L208) +### [`print-ex`](../../2.6.0/boot/pod/src/boot/util.clj#L253) ```clojure (print-ex ex) @@ -350,10 +410,10 @@ Print exception to *err* as appropriate for the current *verbosity* level.
-### [`print-tree`](../../2.5.5/boot/pod/src/boot/util.clj#L218) +### [`print-tree`](../../2.6.0/boot/pod/src/boot/util.clj#L263) ```clojure -(print-tree tree & [prefixes]) +(print-tree tree & [prefixes node-fn]) ``` ``` @@ -372,11 +432,16 @@ prints: --XX└── foo --XX └── bar --XX └── baz + +You can also pass a function to generate the prefix instead of a +collection of prefixes that will be passed the node. Passing a +function to generate the string representation of the node itself is +also an option. ```
-### [`read-string-all`](../../2.5.5/boot/pod/src/boot/util.clj#L309) +### [`read-string-all`](../../2.6.0/boot/pod/src/boot/util.clj#L372) ```clojure (read-string-all s) @@ -388,7 +453,7 @@ Reads all forms from the string s, by wrapping in parens before reading.
-### [`sh`](../../2.5.5/boot/pod/src/boot/util.clj#L318) +### [`sh`](../../2.6.0/boot/pod/src/boot/util.clj#L381) ```clojure (sh & args) @@ -402,7 +467,7 @@ to stdout and stderr as it is produced.
-### [`warn`](../../2.5.5/boot/pod/src/boot/util.clj#L69) +### [`warn`](../../2.6.0/boot/pod/src/boot/util.clj#L83) ```clojure (warn & more) @@ -411,11 +476,14 @@ to stdout and stderr as it is produced. ``` Print WARNING level message. Arguments of the form fmt & args suitable for passing to clojure.core/format. + +Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod +creation or log level won't be affected. ```
-### [`warn-deprecated`](../../2.5.5/boot/pod/src/boot/util.clj#L81) +### [`warn-deprecated`](../../2.6.0/boot/pod/src/boot/util.clj#L101) ```clojure (warn-deprecated & args) @@ -425,11 +493,14 @@ passing to clojure.core/format. Print WARNING level message. Arguments of the form fmt & args suitable for passing to clojure.core/format. Respects the BOOT_WARN_DEPRECATED environment variable, which if set to no suppresses these messages. + +Note that boot.util/*verbosity* in a pod needs to be altered AFTER pod +creation or log level won't be affected. ```
-### [`while-let`](../../2.5.5/boot/pod/src/boot/util.clj#L119) +### [`while-let`](../../2.6.0/boot/pod/src/boot/util.clj#L158) ```clojure (while-let [binding test] & body) @@ -442,7 +513,7 @@ bound to binding.
-### [`with-err-str`](../../2.5.5/boot/pod/src/boot/util.clj#L199) +### [`with-err-str`](../../2.6.0/boot/pod/src/boot/util.clj#L244) ```clojure (with-err-str & body) @@ -457,7 +528,7 @@ Returns the string created by any nested printing calls.
-### [`with-let`](../../2.5.5/boot/pod/src/boot/util.clj#L113) +### [`with-let`](../../2.6.0/boot/pod/src/boot/util.clj#L152) ```clojure (with-let [binding resource] & body) @@ -470,7 +541,7 @@ a cross between doto and with-open.
-### [`with-resolve`](../../2.5.5/boot/pod/src/boot/util.clj#L143) +### [`with-resolve`](../../2.6.0/boot/pod/src/boot/util.clj#L182) ```clojure (with-resolve bindings & body) @@ -483,7 +554,7 @@ namespaces as necessary, binds them, and evaluates the body.
-### [`with-rethrow`](../../2.5.5/boot/pod/src/boot/util.clj#L166) +### [`with-rethrow`](../../2.6.0/boot/pod/src/boot/util.clj#L205) ```clojure (with-rethrow expr message) @@ -497,7 +568,7 @@ exception is rethrown.
-### [`with-semaphore`](../../2.5.5/boot/pod/src/boot/util.clj#L89) +### [`with-semaphore`](../../2.6.0/boot/pod/src/boot/util.clj#L128) ```clojure (with-semaphore sem & body) @@ -511,7 +582,7 @@ will be released before returning.
-### [`with-semaphore-noblock`](../../2.5.5/boot/pod/src/boot/util.clj#L101) +### [`with-semaphore-noblock`](../../2.6.0/boot/pod/src/boot/util.clj#L140) ```clojure (with-semaphore-noblock sem & body) @@ -525,7 +596,7 @@ will be released before returning.
-### [`without-exiting`](../../2.5.5/boot/pod/src/boot/util.clj#L342) +### [`without-exiting`](../../2.6.0/boot/pod/src/boot/util.clj#L405) ```clojure (without-exiting & body) diff --git a/mkdocs b/mkdocs index e1c4e0b1..d278a788 100755 --- a/mkdocs +++ b/mkdocs @@ -22,7 +22,7 @@ (section "Develop" - repl speak wait watch) + notify repl speak wait watch) (section "Fileset" @@ -65,12 +65,12 @@ (section "Logging" - dbug info warn fail warn-deprecated) + dbug dbug* info warn fail warn-deprecated) (section "Useful Macros" guard while-let with-err-str with-let with-resolve with-rethrow - without-exiting dotoseq do-while-let) + without-exiting dotoseq do-while-let extends-protocol) (section "Printing" @@ -78,8 +78,8 @@ (section "Miscellaneous" - extract-ids auto-flush bind-syms dep-as-map let-assert-keys index-of - jarname path->ns read-string-all with-semaphore with-semaphore-noblock)) + extract-ids auto-flush bind-syms dep-as-map map-as-dep let-assert-keys + index-of jarname path->ns read-string-all with-semaphore with-semaphore-noblock)) (write-docs :ns boot.pod @@ -107,6 +107,7 @@ (section "Dependencies" + resolve-release-versions resolve-dependencies resolve-dependency-jar resolve-dependency-jars resolve-nontransitive-dependencies apply-exclusions apply-global-exclusions canonical-coord copy-dependency-jar-entries default-dependencies @@ -129,6 +130,7 @@ (section "Deprecated / Internal" + eval-in-caller eval-in-callee with-pod with-worker set-pods! set-data! set-pod-id! set-worker-pod! set-this-pod!)) (write-docs @@ -148,6 +150,7 @@ (section "Boot Environment" + get-checkouts get-env set-env! merge-env! get-sys-env set-sys-env! pre-env! post-env!) (section @@ -178,7 +181,7 @@ (section "Filter Sequences Of TmpFiles" file-filter by-ext by-name by-path by-re not-by-ext not-by-name - not-by-path not-by-re) + not-by-path not-by-re by-meta not-by-meta) (section "Other Fileset Queries" @@ -197,7 +200,7 @@ (section "Misc. Helpers" gpg-decrypt json-generate json-parse yaml-generate yaml-parse touch - git-files empty-dir! sync! watch-dirs) + git-files empty-dir! sync! patch! watch-dirs template) (section "Deprecated / Internal"