Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skyplabs/bsfl
Bash Shell Function Library
https://github.com/skyplabs/bsfl
bash bash-scripting library scripting shell
Last synced: 11 days ago
JSON representation
Bash Shell Function Library
- Host: GitHub
- URL: https://github.com/skyplabs/bsfl
- Owner: SkypLabs
- License: bsd-3-clause
- Created: 2015-04-23T22:50:27.000Z (over 9 years ago)
- Default Branch: develop
- Last Pushed: 2023-09-11T08:15:36.000Z (about 1 year ago)
- Last Synced: 2024-10-11T19:48:21.613Z (26 days ago)
- Topics: bash, bash-scripting, library, scripting, shell
- Language: Shell
- Homepage: https://skyplabs.github.io/bsfl
- Size: 929 KB
- Stars: 161
- Watchers: 12
- Forks: 45
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BSFL
[![Tests](https://github.com/SkypLabs/bsfl/actions/workflows/tests.yml/badge.svg)](https://github.com/SkypLabs/bsfl/actions/workflows/tests.yml)
The Bash Shell Function Library (BSFL) is a small bash script that acts as a
library for bash scripts. It provides a couple of functions that makes the lives
of most people using shell scripts a bit easier.This project is a fork of the original work of Louwrentius.
[![asciicast](doc/img/bsfl_demo.gif)](https://asciinema.org/a/183624)
## Getting started
In order to use BSFL, you have to include the library in your bash scripts. You
can do it with an absolute path:source
For example:
source /opt/bsfl/bsfl.sh
Or with a relative path:
declare -r DIR=$(cd "$(dirname "$0")" && pwd)
source $DIR/For example:
declare -r DIR=$(cd "$(dirname "$0")" && pwd)
source $DIR/../lib/bsfl.sh## What's next?
The best way to learn how BSFL works is to look at the examples available in the
[examples][examples] folder.## Documentation
The online documentation is available [here][bsfl doc].
Building the documentation is done by using [Doxygen][doxygen]:
cd /doc
git submodule update --init --recursive
doxygen Doxyfile## Dependencies
BSFL is implemented for bash version 4. Prior versions of bash will fail at
interpreting its code.In addition, BSFL depends of some external programs. Here is the list of these
programs:* date
* grep
* logger
* printf
* tput
* trHowever, we try to get as much as possible a standalone library. Hence, some of
these external dependencies will be removed in the future.## Unit tests
BSFL uses [Bats][bats] testing framework to verify the correct behaviour of its
functions.To run all the tests:
bats /test
Or, to run only the tests of a specific group:
bats /test/
For example, for the network group:
bats /test/network.bats
## Releasing a new version
Below are the different steps to do before releasing a new version:
* Run all tests and be sure they all pass
* Update the `BSFL_VERSION` variable in `lib/bsfl.sh`
* Update the `PROJECT_NUMBER` variable in `doc/Doxygen`
* Update the `Version` variable in `bsfl.spec`
* Update `README.md` if needed## Get involved
This project is still under development. Contributions are welcomed!
## License
[New BSD][new bsd]
[bats]: https://github.com/sstephenson/bats
[bsfl doc]: http://skyplabs.github.io/bsfl
[doxygen]: http://doxygen.org/
[examples]: https://github.com/SkypLabs/bsfl/tree/master/examples
[new bsd]: http://opensource.org/licenses/BSD-3-Clause