diff --git a/README b/README index 4be4f01..47f57b1 100644 --- a/README +++ b/README @@ -2,46 +2,58 @@ Bake scripts into files. -Executes @BAKE to the end of the line or @STOP within in any given file. +Executes @BAKE to the end of the line or until @STOP within in any given file. -You may have multi-line commands, by either including a leading @STOP -or ending each line with a backslash. +You may have multi-line commands, by either including a leading @STOP or by + ending each line with a backslash. The execution takes place at the root of the target file, so if you have: -`test/file.c', and then execution takes place at `test'. +`test/file.c', and then execution takes place at `test' and the file is +simply regarded as `file.c'. you may see a real example in the primary and only source file: `bake.c'. this is not targeted toward any language and should be fairly flexible, -especially when multi-line comments are available. +especially when multi-line comments are available. You should always +consider your usecase before using a tool like this. Bake is not an +all-in-one solution, nor is it designed to be a sophisticated build system, +consider something like GNU Make or Mason instead. Binary files (files that contain characters < ' ' or > '~') are supported. -A manpage is included: bake(1) +Manpages are included: bake(1) shake(1) --- Building --- Bootstrapping may be done with Shake, simply run `./shake ./bake.c' -Or simply run `install.sh', you'll need to be a privileged user to install the files. -See the file's content for more details regarding the installation. +Or simply run `install.sh', you'll need to be a privileged user to +install the files. See the file's content for more details regarding +the installation. ---- I/O Extension --- +--- Macro Extension --- -I/O provides various descriptive factors about the current context for the command, -primarily the full and shortened filename, and the remaining arguments to the process. +Macro provides various descriptive factors about the current context: -$@: the name of the executed file -$*: the text of the filename before the last dot -$+: the remaining arguments to Bake + @FILENAME : Filename of the baked file (abc.x.txt) + @SHORT : Shortened version of the Filename (^-> abc.x) + @ARGS : the remaining arguments to Bake -They are most useful for a template command, such as: @BAKE cc $@ -o $* $+ +$@, $*, $+, respectively mapped to @FILENAME, @SHORT, and @ARGS, +are still supported, avoid these in the future. + +They are most useful for a template command, such as: + @BAKE cc @FILENAME -o @SHORT @ARGS + +Backslash, while otherwise ignored, will be respected at the end of the line +to concatenate lines together or if added to before any of listed macros will +yield the unfettered text. --- Options --- only one option may be in use at a time, and must come as the first argument. --h, --help: displays help message, similarly to empty input. --n, --dry-run: DRYRUN, does NOT run anything! + -h, --help: displays help message, similarly to empty input. + -n, --dry-run: DRYRUN, does NOT run anything! --- Shake --- @@ -50,10 +62,10 @@ he liked my suggestion for a name). It is included under authorization of it's creator. The original version of Shake may be found at: -Bake includes a modified Shake, both in installation, and as a bootstrapper. +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 replacement for Bake. +multi-line commands. It is not a general replacement for Bake. Bake is licensed under the GPLv3-only, See LICENSE. -Bake began on September 13th, 2023, and at this point in time, is complete. +Bake was created on September 13th, 2023, and is complete.