Giter VIP home page Giter VIP logo

bash-tui-toolkit's Introduction

Bash TUI Toolkit

LICENSE CircleCI GitHub Release Renovate pre-commit GitHub Downloads (all assets, all releases)


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

  1. Download the bundle (entire lib) or single compoennt from releases
  2. Source the bundle in your script or embed

Usage

For a list of available modules and their documentation please check the docs/modules folder

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

  • 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

Alternatives

bash-tui-toolkit's People

Contributors

renovate[bot] avatar semantic-release-bot avatar timo-reymann avatar vritra4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bash-tui-toolkit's Issues

Syntax error

What happened?

source bundle.bash

Problem description

bash: bundle.bash: line 74: syntax error near unexpected token (' bash: bundle.bash: line 74: list() {'

Expected behaviour

No syntax errors

Actual behaviour

Syntax errors

bash: bundle.bash: line 74: syntax error near unexpected token (' bash: bundle.bash: line 74: list() {'

Steps to Reproduce

source bundle.bash

Important Factoids

Doing this on ArcoLinux.

References

No

I read and aggree to the contribution guidelines

  • I read and aggree to the contribution guidelines

Feature Request: Range input

Description

First of all, this is a really nice toolkit! Thank you for developing it!

This toolkit already covers most of what I need and looks very nice, however I am missing a range input that is critical for one of the scripts i am trying to write.

The type of input I am looking for should function similar to --scale from Zenity but in TUI.

I am not sure if there is a standard TUI look for scale inputs but I imagine it might looks something like the following:

$ scale "Adjust the slider" -5 5 0
? Adjust the slider
-5 ❮ 0 ❯ 5

References

No response

Syntax error

What happened?

source bundle.bash

Problem description

bash: bundle.bash: line 74: syntax error near unexpected token (' bash: bundle.bash: line 74: list() {'

Expected behaviour

No syntax errors

Actual behaviour

Syntax errors

bash: bundle.bash: line 74: syntax error near unexpected token (' bash: bundle.bash: line 74: list() {'

Steps to Reproduce

source bundle.bash

Important Factoids

Doing this on ArcoLinux.

References

No

I read and aggree to the contribution guidelines

  • I read and aggree to the contribution guidelines

Support NOCOLOR

Description

If the NO_COLOR env var is set to any value, all outputs should have no color and emojis.

For that, it would be beneficial to create a wrapper that returns a string for a colored and uncolored version.

References

https://no-color.org/

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

circleci
.circleci/config.yml
  • shellcheck 3.2.0
  • semantic-release 6.0.0
dockerfile
.development/build/Dockerfile
  • golang 1.22-alpine
.development/docs/Dockerfile
  • alpine 3
pre-commit
.pre-commit-config.yaml
  • pre-commit/pre-commit-hooks v4.6.0
  • syntaqx/git-hooks v0.0.18
  • zahorniak/pre-commit-circleci v0.6
  • matthorgan/pre-commit-conventional-commits 20fb9631be1385998138432592d0b6d4dfa38fc9

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.