Skip to content
Alan Dipert edited this page Feb 10, 2016 · 5 revisions

NOTE: As of Boot 2.5, implicit target directory creation has been deprecated in favor of the builtin target task. See FAQ for more information.

The target directory is the directory into which all output files will be copied to at the end of any task pipeline's pre-processing.

The target directory is defined in the Boot environment with the :target-path env key. By default, its path is target, relative to the current working directory.

When a pipeline's tasks are run, the tasks pass filesets referring to temp directories. Each consecutive task may add temp resource, source, asset, and cache files to a temp directory, after which it will [[sync it with the filesystem using commit!|filesets#sync fileset to disk]]. These different types of files act in either input or output roles (or both). After the final task in the pipeline completes its pre-processing, the fileset cannot be modified anymore.

Before post-processing occurs (in which the tasks perform side effects in reverse order), Boot will synchronize the real target directory with only those temp files that have the output role (i.e., resource- and asset-type files) that are in the last fileset that any task commit!ed.

Boot will usually delete any already-existing files from the target directory that are not also in the fileset's output files (though it will not unnecessarily delete files that also exist as output files in the fileset, though it may overwrite them—similarly to rsync --delete).

However, if no task in the pipeline committed any new file to the fileset, then the target directory will not be modified at all—tasks that only read things from the fileset or use their own private temp directories will not affect the target directory. This is to prevent boot repl and similar tasks from wiping the target directory every time they're run.

Clone this wiki locally