Yab
Yet another build tool
Wouldn't it be great if you could use the same build tool for every project?
Regardless of operating system, programming language...
Yab is just that.
Use Lua scripts to define specific actions and execute them from the command line.
Does that not already exist?
No!
|
Heavily used |
Builtin support for many technologies |
Easy to setup and extend |
Basic syntax (loops, functions, ...) |
Parameters |
No domain specific language |
Cross-platform by default |
Does not make the codebase messy |
Yab |
:x: |
:x: / :white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Bazel |
:x: |
:white_check_mark: |
:x: |
:x: |
:x: |
:x: |
:white_check_mark: |
:x: |
Gradle |
:white_check_mark: |
:x: |
:x: |
:white_check_mark: |
:x: |
:x: / :white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Make |
:white_check_mark: |
:x: |
:white_check_mark: |
:x: |
:white_check_mark: |
:x: |
:x: |
:white_check_mark: |
Lua is a common and performant language.
Yab offers some useful functions in addition to the Lua standard library that might be useful when building configurations.
Looking for an example configuration?
Take a look at this projects .yab
folder.
Installation
Download prebuild
https://frank-mayer.github.io/yab/
Install using Go
go install github.com/Frank-Mayer/yab/cmd/yab@latest
Docs
Documentation is in the DOCS.md file.
Usage
Run one or more configs:
yab [configs ...]
Pass arguments to the scripts:
yab [configs ...] -- [args ...]
A config is a lua file inside the config directory.
The following directories are used as configs (first found wins)
./.yab/
$XDG_CONFIG_HOME/yab/
$APPDATA/yab/
$HOME/.config/yab/
Lua definitions
Run yab --def
to create a definitions file in your global config directory.
Use this to configure your Lua language server.
Global config is one of those directories:
$XDG_CONFIG_HOME/yab/
$APPDATA/yab/
$HOME/.config/yab/
Auto completion
Fish completions: yab.fish
GitHub Actions
- name: Setup Yab
uses: Frank-Mayer/yab-setup@v1.0.0
Badge
[![Yab Project](https://img.shields.io/badge/Yab_Project-2C2D72?logo=lua)](https://github.com/Frank-Mayer/yab)