| .circleci | ||
| .development | ||
| .github/images | ||
| docs | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .releaserc.json | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| renovate.json | ||
| test.sh | ||
Bash TUI Toolkit
Toolkit to create interactive and shiny terminal UIs using plain bash builtins
Features
- clean and standardized API
- provide a simple and clear default set of elements to use creating an interactive terminal UI
- clean and minimalistic design
- zero dependencies to be installed
- parts can be used modular
Requirements
Installation
Download and include in your scripts
- Download the bundle (entire lib) or single compoennt from releases
- Source the bundle in your script or embed, e.g.
or simply copy it into your script.source ./lib/bundle.bash
Source directly from release
Note that this is not a recommended approach and only intended for quick testing or trying out another version.
- Choose the bundle in the version you want to use from the available releases in the docs.
- Source it to your script on runtime:
- Using
wgetsource <(wget -qO- https://bash-tui-toolkit.timo-reymann.de/latest/bundle.bash) - Using
curlsource <(curl -qsS https://bash-tui-toolkit.timo-reymann.de/latest/bundle.bash)
- Using
Usage
For a list of available modules and their documentation please check the docs.
For a complete playground demo check test.sh.
Motivation
Providing a clean bash UI sometimes becomes a mess and interactivity is hard to achieve especially when it should be portable.
The target is to provide a simple-to-use toolkit that can be dropped into any bash script and is compatible no matter the target system.
Documentation
- GitHub Pages - Versioned releases, documentation and compability matrix
- Modules - Modules available and their usage
- Compability table - Known combinations of OS/Bash Version/Terminal emulators that work guaranteed
Contributing
I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the configuration
- Submitting a fix
- Proposing new features
- Becoming a maintainer
To get started please read the Contribution Guidelines.
Development
Requirements
Build
make build
Update documentation
To update the module documentation you just need to run
make generate-docs
This builds the documentation inside a docker container and updates the repo locally. Afterwards just commit the docs with your code changes
Credits
- Logo
- Bash logo from pngegg
- Toolbox logo from IconExperience.com
Alternatives
- kahkhang/Inquirer.sh - List, Checkbox and Text Input with more advanced validation