bake/bake.1
2024-09-30 15:07:00 +00:00

77 lines
2.1 KiB
Groff

.TH BAKE "1" "August 2024" "bake 20240930" "User Commands"
.SH NAME
.B bake
\- file embeddable scripts
.SH SYNOPSIS
.B bake
[\-chlnx] [\-s <N>] <FILENAME> [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') or to the first
instance of @STOP.
This format may be embedded within \fBany file\fP.
It roots the shell execution in the directory of the given file.
Options must always be put before the filename, 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 or remove anything
\fB\-c \-\-color\fP, disables color
\fB\-l \-\-list\fP, lists available bake blocks
\fB\-s \-\-select\fP \<n\>, selects Nth bake block
\fB\-x \-\-expunge\fP, Removes file 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. backslashes may be used to
extend a command over several lines.
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 \fBarguments\fP, supports choice syntax: @ARGS:N prints the
Nth argument starting from 0, leading plus prints inclusive remaining
arguments (@ARGS:N+)
.TP
.B @LINE
returns the line number
.TP
.B @RECURS
returns full executable name (e.g. /usr/local/bin/bake)
.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 @{TEXT} format, and
is not recursive. Expunge simply outputs rm 'TEXT...', where text
expands any instance of ' to \\'.
.SH EXAMPLE
.\" SRC BEGIN (example.c)
.EX
// example.c @BAKE cc -o @SHORT @NAME @ARGS
#include <stdio.h>
int main (void) {
puts("Hello.");
return 0;
}
.EE
.SH COPYRIGHT
.PP
Licensed under the public domain.