https://github.com/mcandre/bb
the awk build system
https://github.com/mcandre/bb
Last synced: 5 months ago
JSON representation
the awk build system
- Host: GitHub
- URL: https://github.com/mcandre/bb
- Owner: mcandre
- Created: 2023-12-27T23:31:59.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-20T19:19:21.000Z (over 1 year ago)
- Last Synced: 2025-02-20T20:27:19.092Z (over 1 year ago)
- Language: Awk
- Homepage:
- Size: 5.86 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bb: the awk build system
> Your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.
# ABOUT
`bb` demonstrates a working build system written in GNU awk, to organize build steps for awk projects.
# EXAMPLE
```console
$ cd example
$ ./bb
bzz bzz
$ ./bb help
Usage: bb [ [ [ ...]]]
Tasks:
* all
* help
* test
```
# CONFIGURATION
Tasks are implemented with awk functions.
Task trees are implemented with functions that call other functions.
That's it.
# REQUIREMENTS
* a UNIX environment with [coreutils](https://www.gnu.org/software/coreutils/) / [base](http://ftp.freebsd.org/pub/FreeBSD/releases/) / [macOS](https://www.apple.com/macos) / [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) / etc.
* GNU [awk](https://www.gnu.org/software/gawk/manual/gawk.html) 5+
## Recommended
* [zsh](https://www.zsh.org/)
# SEE ALSO
* Inspiration from [nobuild](https://github.com/tsoding/nobuild), a convention for C/C++ build systems
* [bashate](https://github.com/openstack/bashate), a shell script style linter
* [beltaloada](https://github.com/mcandre/beltaloada), a guide to writing build systems for (POSIX) sh
* [booty](https://github.com/mcandre/booty?tab=readme-ov-file) for JS/Node.js/altJS
* [dale](https://github.com/mcandre/dale) builds D projects
* [Gradle](https://gradle.org/), a build system for JVM projects
* [jelly](https://github.com/mcandre/jelly), a JSON task runner
* [lair](https://github.com/mcandre/lair), a portable task runner
* [lake](https://luarocks.org/modules/steved/lake), a Lua task runner
* [Leiningen](https://leiningen.org/) + [lein-exec](https://github.com/kumarshantanu/lein-exec), a Clojure task runner
* [lichen](https://github.com/mcandre/lichen), a sed task runner
* [Mage](https://magefile.org/), a task runner for Go projects
* [mian](https://github.com/mcandre/mian), a task runner for (Chicken) Scheme Lisp
* [npm](https://www.npmjs.com/), [Grunt](https://gruntjs.com/), Node.js task runners
* [POSIX make](https://pubs.opengroup.org/onlinepubs/009695299/utilities/make.html), a task runner standard for C/C++ and various other software projects
* [Rake](https://ruby.github.io/rake/), a task runner for Ruby projects
* [Rebar3](https://www.rebar3.org/), a build system for Erlang projects
* [rez](https://github.com/mcandre/rez) builds C/C++ projects
* [sbt](https://www.scala-sbt.org/index.html), a build system for Scala projects
* [Shake](https://shakebuild.com/), a task runner for Haskell projects
* [ShellCheck](https://www.shellcheck.net/), a shell script linter with a rich collection of rules for promoting safer scripting
* [slick](https://github.com/mcandre/slick), a linter to enforce stricter, unextended POSIX sh syntax compliance
* [stank](https://github.com/mcandre/stank), a collection of POSIX-y shell script linters
* [tinyrick](https://github.com/mcandre/tinyrick) for Rust projects
* [yao](https://github.com/mcandre/yao), a task runner for Common LISP projects
🐝