Ever burned a cake?
Go to file
2024-08-05 01:00:23 +00:00
.gitignore bump v20240804 public domain; rewrite; new macros: @line, @name; ; added options list, select, removed expunge 2024-08-05 01:00:23 +00:00
bake.1 bump v20240804 public domain; rewrite; new macros: @line, @name; ; added options list, select, removed expunge 2024-08-05 01:00:23 +00:00
bake.c bump v20240804 public domain; rewrite; new macros: @line, @name; ; added options list, select, removed expunge 2024-08-05 01:00:23 +00:00
install.sh distrib 2024-03-24 20:31:24 +00:00
README bump v20240804 public domain; rewrite; new macros: @line, @name; ; added options list, select, removed expunge 2024-08-05 01:00:23 +00:00
shake bump v20240408 2024-04-08 23:51:12 +00:00

--- README

A tool to run embedded scripts.

Bootstrap with ./shake bake.c
then compile further with ./bake,
install by running ./install.sh

---

bake [-chln] [-s <n>] <FILENAME> [ARGS...]; version 20240804

Bake is a simple tool meant to execute embedded shell commands within
any file.  It executes with /bin/sh the command after a "@BAKE " to
the end of the line (a UNIX newline: '\n').

It expands some macros,
	@NAME  - filename
	@SHORT - shortened filename
	@ARGS  - other arguments to the program
	@LINE  - line number at the selected @BAKE

All macros can be exempted by prefixing them with a backslash,
which'll be subtracted in the expansion. multi-line commands may be
done by a leading backslash, which are NOT subtracted.

It has five options, this message (-h, --help); prevents the execution
of the shell command (-n, --dry-run); disable color (-c, --color); list
(-l, --list) and select (-s<n>, --select <n>) which respectively lists
all @BAKE commands and select & run the Nth command.

It roots the shell execution in the directory of the given file.

Licensed under the public domain.

---

Shake

Bake was inspired by the Bash-based Shake utility (formerly eMake, he
liked my suggestion for a name).  It is included under authorization
of its creator.  The original version of Shake may be found at:
<http://bis64wqhh3louusbd45iyj76kmn4rzw5ysawyan5bkxwyzihj67c5lid.onion/anon/shake>

Bake includes a modified Shake, both after installation and as a
bootstrapper.  The modified version includes all features of Bake with
the exceptions of multi-line commands.  It is not a general
replacement for Bake.

Changelog

Bake was created on 2023/09/13, and is complete as of 2024/03/02.

24/08/04 - Updated version!

Bake is has been finished for a while but I thought the code could use
a checkup with GNU complexity, and this gave me a reason to rewrite
the important parts into a more sane manner. I had, at the same time,
been requested to extend Bake with the @LINE and list/select.

The changeset is large enough to possibly introduce bugs, and the last
version of Bake is, in my opinion, highly reliable. This newer version
needs to be tested a bit more to confirm full compatibility.

changes - Rewrite of the code; Removal of -x --expunge; Addition of
@LINE & @NAME, list, & select.