A simple build automation tool like GNU Make.
Baker calls sh -c <cmd> to execute your commands. I originally wanted to directly execute the commands, but parsing variables
and other shell syntax added a lot of extra code which could have been easily prevented with sh.
Baker is available in the AUR (baker-git).
bake setup
bake
A binary will be copied to ./bin/bake
Install
sudo bake install
Uninstall
sudo bake uninstall
For building man pages, install pandoc and run:
bake docs
The exported man page will be in ./docs/baker.1.
-
Execute command in build:
bake -
List all commands:
bake [-c, --commands] -
Show help message:
bake [-h, --help] -
Run a custom command:
bake [command]
Baker looks for a recipe.toml in the root directory. If it doesn't find one, it generates one:
For tracking command execution time and knowing which command is being executed set debug = true in the recipe.toml. If
debug is set to false or not set at all baker will just print stdout/stderr of the command being executed.
[build]
cmd = ""build is executed when the binary is invoked without any flags.
Custom commands can be set using custom.
# clean is taken as the name of the custom command
[custom.clean]
cmd = "cargo clean" # cmd
run = false # if it should run after build is executedYou can also run custom commands directly by invoking baker with the name of the cmd as the argument.
Example:
bake clean
You can also run commands before build using pre.
# fmt is taken as the name of the pre command
[pre.fmt]
cmd = "cargo fmt"You can set env vars using env.
[env]
TEST_ENV="foo"
TEST_ENV_2="bar"Baker also supports recursion (invoking baker inside baker):
Example:
[custom.docs]
cmd = "pandoc docs/baker.1.md -s -t man -o docs/baker.1"
run = false
[custom.view-docs]
cmd ="bake docs && man ./docs/baker.1"
run = falseRunning bake view-docs will run bake docs and view the man page.
An example config can be found in recipe.toml