A bit like Make but for directories
Make works really well with file in, file out processes, but breaks down when you have directory in, directory out processes. This aim to handle that.
The dirbuild config file defines some targets (a lot like with make), where each target has:
- a command
- some glob patterns to capture which files affect the outcome of that command
- the path to the directory that command creates
Then, when running a target with dirbuild [mytarget]
(target is
optional, defaults to the first target in the config file), that
target is found in the config file, the dependencies are resolved and
each file is hashed. The output directory is checked for a manifest
file, if it exists with the same hashes for each file, then nothing to
do. Otherwise, runs the command, then writes the manifest file.
Named .dirbuild.yml
.
targets:
mytarget:
command: npm run build
depends:
- '*.txt' # every .txt file in the current directory
- '**/*.js' # every .js file in any subdirectory
- package.json
dependsExclude:
- node_modules/** # ignore everything in node_modules
output: build/
Generated by dirbuild
, and stored in the output directory once the
command completes at [outputDirectory]/.dirbuildManifest.yml
.