.TH BAKE "1" "August 2024" "bake 20240927" "User Commands" .SH NAME .B bake \- file embeddable scripts .SH SYNOPSIS .B bake [\-chlnx] [\-s ] [ARGS...] .SH DESCRIPTION bake is a simple tool meant to execute embedded shell commands within any file. It executes with /bin/sh the command after a "\fB@BAKE\fP " to the end of the line (a UNIX newline: '\fB\\n\fP'). This format may be embedded within \fBbinary files\fP, or any file where no unwanted preceding instance of \fB@BAKE\fP appears. It roots the shell execution in the directory of the given file. Options must always be put first, and short options may be merged together, numerical options must be trailing. .HP \-h \-\-help, Help message \fB\-n \-\-dry\-run\fP, don't execute anything \fB\-l \-\-list\fP, lists available shell commands \fB\-s \-\-select\fP <\FBn\fP>, selects Nth shell command \fB\-x \-\-expunge\fP, Removes what's specified in the expunge block .PP Macros 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. These macros will expand to their counterpart before execution. .TP .B @FILENAME, @FILE, @NAME, $@ returns target\-file (abc.x.txt) .TP .B @SHORT, $* returns target\-file without suffix (abc.x.txt \-> abc.x) supports choice syntax, @SHORT:N removes N suffixes, so (a.b.c 2 -> a) .TP .B @ARGS, $+ returns .B arguments , supports choice syntax, @ARGS:0 returns the first argument, @ARGS:N so on. .TP .B @LINE returns the line number .PP Additional Features And Notes Shell execution may be disabled with the \fB-n\fP or \fB--dry-run\fP option. Expunge removes exactly one file specified in the @{...} format. You may use backslashes to remove .SH EXAMPLE .\" SRC BEGIN (example.c) .EX // example.c @BAKE cc -o @SHORT @NAME @ARGS #include int main (void) { puts("Hello."); return 0; } .EE .SH COPYRIGHT .PP Licensed under the public domain.