bake - make for bash
bake command [options...]
bake is make for bash programs. It provides an extensible system for managing project tasks using modular code.
All bake(1) projects have the following tasks built in task-test(7), task-clean(7), task-list(7), task-doc(7) and task-semver(7).
The convention is that task methods are not declared in tasks(7) but are placed in modules and then included using require(3). So to include the task-todo(7) functionality into your project all you need to do is require(3) it:
require 'tasks/todo';
The bake(1) program looks for a tasks(7) file in the current working directory. If no tasks(7) file is found in the current working directory then bake(1) will walk all parent directories looking for a tasks(7) file.
It maps commands (the first option passed to bake(1)) to task method(s) declared by the tasks file. A command is considered to be the first option passed to the bake executable, any other options specified on the command line are passed to the corresponding task method.
The following variables are available to each command method:
root The directory where the tasks file is located.
target A temporary target directory corresponding to ${root}/target.
tasks The file system path to the tasks file, eg: ${root}/tasks.
A >0 exit code is used when no task(7) file could be located or no command is available, otherwise the exit code is deferred to the task being executed.
12>0exit.It is recommended that task command implementations explicitly exit the program using the quit and success commands declared by console(3).
bake is written in bash and depends upon bash >= 4.
bake is copyright (c) 2012 muji http://xpm.io
task-test(7), task-doc(7), task-clean(7), task-list(7)