bake/README

69 lines
2.7 KiB
Plaintext
Raw Normal View History

--- README
2023-11-12 23:34:56 -05:00
A tool to run embedded scripts.
2023-09-27 01:28:54 -04:00
Bootstrap with ./shake bake.l
then compile further with ./bake,
install by running ./install.sh
2023-11-12 23:34:56 -05:00
---
2023-11-12 23:34:56 -05:00
2024-09-28 19:11:21 -04:00
bake [-chln] [-s <n>] <FILENAME> [ARGS...]; version 20240928
2023-09-27 01:28:54 -04:00
2024-09-30 11:03:08 -04:00
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') or to the first instance of
@STOP.
2023-09-27 01:28:54 -04:00
It expands some macros,
2024-09-28 19:06:05 -04:00
@FILENAME @FILE @NAME - filename
@SHORT - filename without suffix (abc.x.txt \-> abc.x)
@SHORT:N - removes N suffixes, so (a.b.c 2 -> a)
@ARGS - other arguments to the program
@ARGS:N - Provides the Nth argument, starting from 0
@ARGS:N+ - All arguments at and after Nth
@RECURS - the full path name to the executable
@LINE - line number at the selected @BAKE
2024-09-30 11:03:08 -04:00
All macros can be exempted by prefixing them with a backslash,
which'll be subtracted in the expansion. commands may be spanned over
several lines with a leading backslash.
2024-02-14 13:26:19 -05:00
2024-09-30 11:03:08 -04:00
-h --help | Help message
-n --dry-run | don't execute or remove anything
-c --color | disables color
-l --list | lists available Bake blocks
-s --select <n> | selects Nth Bake block
-x --expunge | Removes the file specified in the expunge block
2023-09-28 02:20:48 -04:00
It roots the shell execution in the directory of the given file.
Licensed under the public domain.
2023-11-12 23:34:56 -05:00
2024-09-30 11:03:08 -04:00
--- Potential Issues
Whitespace interstring is pruned, which may lead to an issue where you may echo ' ' or require more than one space, please don't do this. If you absolutely need this remove the 'BEGIN PADDING;' statement from the <FOUND>{space} rule. You may also wish to solve the issue with adding a conditional to ' (excluding expunge) and " to wind and not observe the other rules via another group that matches the identity of <OVERLOOK>(.|\n){ ECHO; } & <OVERLOOK>('|"){ BEGIN FOUND; ECHO; }, modify other rules in <FOUND> accordingly.
---
2023-09-27 01:59:13 -04:00
Shake
2023-09-27 01:28:54 -04:00
2024-09-30 11:03:08 -04:00
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>
2023-09-28 02:20:48 -04:00
2024-09-30 11:03:08 -04:00
Bake includes a modified Shake, both after installation and as a
bootstrapper. The modified version includes all features of Bake with
2024-09-30 11:03:08 -04:00
the exceptions of multi-line commands. It is not a general
replacement for Bake.
2023-09-28 02:20:48 -04:00
Changelog
2023-09-28 02:20:48 -04:00
Bake was created on 2023/09/13, and complete as of 2024/03/02.
2023-09-28 02:20:48 -04:00
2024-09-27
2023-09-27 01:28:54 -04:00
2024-09-30 11:03:08 -04:00
Lex. As adviced by the original creator, I learned and implemented a
Bake with lex. It's fully featured, and has new stuff.