Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/plumdog/dirbuild

A bit like Make but for directories
https://github.com/plumdog/dirbuild

Last synced: about 1 month ago
JSON representation

A bit like Make but for directories

Awesome Lists containing this project

README

        

# dirbuild
A bit like Make but for directories

## The idea

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.

## The config file

Named `.dirbuild.yml`.

```yaml
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/
```

## The manifest file

Generated by `dirbuild`, and stored in the output directory once the
command completes at `[outputDirectory]/.dirbuildManifest.yml`.