{"id":16288418,"url":"https://github.com/skyplabs/bsfl","last_synced_at":"2025-07-14T05:36:58.210Z","repository":{"id":30927741,"uuid":"34485695","full_name":"SkypLabs/bsfl","owner":"SkypLabs","description":"Bash Shell Function Library","archived":false,"fork":false,"pushed_at":"2023-09-11T08:15:36.000Z","size":951,"stargazers_count":166,"open_issues_count":4,"forks_count":48,"subscribers_count":11,"default_branch":"develop","last_synced_at":"2025-05-29T10:13:14.584Z","etag":null,"topics":["bash","bash-scripting","library","scripting","shell"],"latest_commit_sha":null,"homepage":"https://skyplabs.github.io/bsfl","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SkypLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-04-23T22:50:27.000Z","updated_at":"2025-05-26T12:15:39.000Z","dependencies_parsed_at":"2022-07-09T15:18:13.220Z","dependency_job_id":"4cd43bc7-d1aa-4c8e-8ce7-7fa53bde32c5","html_url":"https://github.com/SkypLabs/bsfl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/SkypLabs/bsfl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkypLabs%2Fbsfl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkypLabs%2Fbsfl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkypLabs%2Fbsfl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkypLabs%2Fbsfl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkypLabs","download_url":"https://codeload.github.com/SkypLabs/bsfl/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkypLabs%2Fbsfl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265246220,"owners_count":23734109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-scripting","library","scripting","shell"],"created_at":"2024-10-10T19:48:15.405Z","updated_at":"2025-07-14T05:36:53.159Z","avatar_url":"https://github.com/SkypLabs.png","language":"Shell","readme":"# BSFL\n\n[![Tests](https://github.com/SkypLabs/bsfl/actions/workflows/tests.yml/badge.svg)](https://github.com/SkypLabs/bsfl/actions/workflows/tests.yml)\n\nThe Bash Shell Function Library (BSFL) is a small bash script that acts as a\nlibrary for bash scripts. It provides a couple of functions that makes the lives\nof most people using shell scripts a bit easier.\n\nThis project is a fork of the original work of Louwrentius.\n\n[![asciicast](doc/img/bsfl_demo.gif)](https://asciinema.org/a/183624)\n\n## Getting started\n\nIn order to use BSFL, you have to include the library in your bash scripts. You\ncan do it with an absolute path:\n\n    source \u003cabsolute path to BSFL\u003e\n\nFor example:\n\n    source /opt/bsfl/bsfl.sh\n\nOr with a relative path:\n\n    declare -r DIR=$(cd \"$(dirname \"$0\")\" \u0026\u0026 pwd)\n    source $DIR/\u003crelative path to BSFL\u003e\n\nFor example:\n\n    declare -r DIR=$(cd \"$(dirname \"$0\")\" \u0026\u0026 pwd)\n    source $DIR/../lib/bsfl.sh\n\n## What's next?\n\nThe best way to learn how BSFL works is to look at the examples available in the\n[examples][examples] folder.\n\n## Documentation\n\nThe online documentation is available [here][bsfl doc].\n\nBuilding the documentation is done by using [Doxygen][doxygen]:\n\n    cd \u003cBSFL repository\u003e/doc\n    git submodule update --init --recursive\n    doxygen Doxyfile\n\n## Dependencies\n\nBSFL is implemented for bash version 4. Prior versions of bash will fail at\ninterpreting its code.\n\nIn addition, BSFL depends of some external programs. Here is the list of these\nprograms:\n\n* date\n* grep\n* logger\n* printf\n* tput\n* tr\n\nHowever, we try to get as much as possible a standalone library. Hence, some of\nthese external dependencies will be removed in the future.\n\n## Unit tests\n\nBSFL uses [Bats][bats] testing framework to verify the correct behaviour of its\nfunctions.\n\nTo run all the tests:\n\n    bats \u003cBSFL repository\u003e/test\n\nOr, to run only the tests of a specific group:\n\n    bats \u003cBSFL repository\u003e/test/\u003ctest file\u003e\n\nFor example, for the network group:\n\n    bats \u003cBSFL repository\u003e/test/network.bats\n\n## Releasing a new version\n\nBelow are the different steps to do before releasing a new version:\n\n* Run all tests and be sure they all pass\n* Update the `BSFL_VERSION` variable in `lib/bsfl.sh`\n* Update the `PROJECT_NUMBER` variable in `doc/Doxygen`\n* Update the `Version` variable in `bsfl.spec`\n* Update `README.md` if needed\n\n## Get involved\n\nThis project is still under development. Contributions are welcomed!\n\n## License\n\n[New BSD][new bsd]\n\n [bats]: https://github.com/sstephenson/bats\n [bsfl doc]: http://skyplabs.github.io/bsfl\n [doxygen]: http://doxygen.org/\n [examples]: https://github.com/SkypLabs/bsfl/tree/master/examples\n [new bsd]: http://opensource.org/licenses/BSD-3-Clause\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyplabs%2Fbsfl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyplabs%2Fbsfl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyplabs%2Fbsfl/lists"}