{"id":13602902,"url":"https://github.com/unfor19/bargs","last_synced_at":"2025-08-20T18:34:25.615Z","repository":{"id":41890279,"uuid":"281792822","full_name":"unfor19/bargs","owner":"unfor19","description":"A framework for creating a Bash CLI application.","archived":false,"fork":false,"pushed_at":"2024-04-28T08:24:43.000Z","size":12639,"stargazers_count":156,"open_issues_count":0,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-13T22:48:23.808Z","etag":null,"topics":["arguments-parsing","bash","bash-script","cli","docker","framework","pass-arguments"],"latest_commit_sha":null,"homepage":"https://meirg.co.il","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unfor19.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-22T22:08:54.000Z","updated_at":"2024-08-15T02:24:57.000Z","dependencies_parsed_at":"2024-01-14T04:38:28.625Z","dependency_job_id":"cf990eb7-e188-4dab-9115-ae8a55d0d7c3","html_url":"https://github.com/unfor19/bargs","commit_stats":null,"previous_names":[],"tags_count":21,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fbargs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fbargs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fbargs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfor19%2Fbargs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unfor19","download_url":"https://codeload.github.com/unfor19/bargs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230445927,"owners_count":18227060,"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":["arguments-parsing","bash","bash-script","cli","docker","framework","pass-arguments"],"created_at":"2024-08-01T18:01:42.001Z","updated_at":"2025-08-20T18:34:25.585Z","avatar_url":"https://github.com/unfor19.png","language":"Shell","readme":"# bargs\r\n\r\n[![testing](https://github.com/unfor19/bargs/workflows/testing/badge.svg)](https://github.com/unfor19/bargs/actions?query=workflow%3Atesting)\r\n\r\nA utility for creating a Bash CLI application.\r\n\r\n![bargs-demo](https://d33vo9sj4p3nyc.cloudfront.net/bargs/bargs-example.gif)\r\n\r\n## Examples\r\n\r\n- Run the [example.sh](https://github.com/unfor19/bargs/blob/master/example.sh) application with [Docker](https://docs.docker.com/engine/install/)\r\n  ```bash\r\n  $ docker run --rm -it unfor19/bargs:example --help\r\n  ```\r\n- For more examples, take a look at the following repositories\r\n  - [unfor19/modulecost](https://github.com/unfor19/modulecost)\r\n  - [unfor19/replacer](https://github.com/unfor19/replacer)\r\n  - [unfor19/ecs-stop-task](https://github.com/unfor19/ecs-stop-task)\r\n\r\n## Features\r\n\r\n1. **Help Message** is auto generated, set `bargs \u003e description` to update the usage (`--help`) message\r\n1. **Short and Long Names** are supported with `name=person_name` and `short=n`\r\n1. **Description Per Argument** is supported with `description=What is your name?`\r\n1. **Flexible Assignment** enables passing arguments with the equal sign or a whitespace\r\n   - `example.sh --name \"Willy Wonka\"`\r\n   - `example.sh --name=\"Willy Wonka\"`\r\n1. **Default Value** for each argument can be set with `default=some-value`\r\n\r\n   - If `default` contains whitespaces, use double quotes - `default=\"Willy Wonka\"`\r\n   - If `default` starts with a `$`, then it's a variable\u003cbr\u003e\r\n     `default=$LANG` is evaluted to `default=en_US.UTF-8`\r\n\r\n1. **Allow Environment Variables** with `allow_env_var=true`, if argument is empty then the environment variable will be used. If environment variable is empty, the `default` will be used\r\n   - Environment variable name must be UPPERCASED, `export USERNAME=willywonka`\r\n   - Available in your application as `$USERNAME` or `$username`\r\n1. **Allow Empty Values** with `allow_empty=true`\r\n1. **Flag Argument** with `flag=true`, if the flag is provided, its value is true - `CI=true`\r\n1. **Constrain Values** is supported with `options=first second last`, use whitespace as a separator\r\n1. **Prompt** for arguments with `prompt=true`\r\n\r\n   - Hide user input with `hidden=true`\r\n   - Prompt for value confirmation with `confirmation=true`\r\n\r\n## Requirements\r\n\r\n- Bash v4.4+\r\n- Util-Linux - We're printing beautiful stuff with the [column](https://linux.die.net/man/1/column) command\r\n\r\n### macOS\r\n\r\n```bash\r\nbrew install util-linux\r\n```\r\n\r\n### Ubuntu (Debian)\r\n\r\n```bash\r\nsudo apt-get -y update \u0026\u0026 sudo apt-get install -y bsdmainutils\r\n```\r\n\r\n### Alpine\r\n\r\n```bash\r\napk add --no-cache util-linux bash\r\n```\r\n\r\n### CentOS\r\n\r\n```bash\r\nyum update -y \u0026\u0026 yum install -y util-linux bash\r\n```\r\n\r\n### Windows\r\n\r\nWorks in Windows-Subsystem-Linux ([WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10)) using [Ubuntu 18.04](https://www.microsoft.com/en-il/p/ubuntu-1804-lts/9n9tngvndl3q?rtc=1\u0026activetab=pivot:overviewtab)\r\n\r\n\u003cdetails\u003e\u003csummary\u003eMore details - Expand/Collapse\u003c/summary\u003e\r\n\r\nMake sure you use [dos2unix](https://linux.die.net/man/1/dos2unix) on all files, see another example [here](https://github.com/unfor19/bargs/blob/master/.github/workflows/testing.yml)\r\n\r\n```powershell\r\nchoco install dos2unix\r\n# ...\r\ndos2unix bargs.sh bargs_vars example.sh tests.sh\r\n# ...\r\nwsl -u root -d Ubuntu-18.04 -- source example.sh\r\n```\r\n\r\n\u003c/details\u003e\r\n\r\n## Getting Started\r\n\r\n1. Download `bargs.sh` (10 kilobytes) and the `bargs_vars` template\r\n\r\n   - Latest version (master)\r\n     ```bash\r\n\t curl -sL --remote-name-all bargs.link/{bargs.sh,bargs_vars}\r\n\t ```\r\n   - Specific release (v1.x.x)\r\n     ```bash\r\n\t curl -sL --remote-name-all bargs.link/1.1.4/{bargs.sh,bargs_vars}\r\n\t ```\r\n\r\n2. Reference to `bargs_vars` - do one of the following\r\n\r\n   - Default behavior - `bargs.sh` and `bargs_vars` are in the same folder\r\n   - Specific `bargs_vars` path - `export BARGS_VARS_PATH=\"${PWD}/path/to/my_bargs_vars\"`, see [tests.sh](https://github.com/unfor19/bargs/blob/master/tests.sh#L37-L38)\r\n\r\n3. Edit `bargs_vars` - Declare arguments/variables, here are some ground rules\r\n\r\n   - The delimiter `---` is required once at the beginning, and **twice** in the end\r\n   - Characters which are not supported: `=`, `~`, `\\`, `'`, `\"`\r\n   - The last variable `bargs` is necessary, comments below\r\n   - It's best to `source` bargs at the top of the bash script.\r\n\r\n```\r\n---\r\nname=bargs                                                # DON'T TOUCH!\r\ndescription=bash example.sh -n Willy --gender male -a 99  # Editable, that's the usage message\r\ndefault=irrelevant                                        # DON'T TOUCH!\r\n---\r\n---\r\n```\r\n\r\n\u003cdetails\u003e\u003csummary\u003ebargs_vars - Expand/Collpase\u003c/summary\u003e\r\n\r\n\u003c!-- replacer_start_bargsvars --\u003e\r\n\r\n```\r\n---\r\nname=person_name\r\nshort=n\r\ndescription=What is your name?\r\ndefault=\"Willy Wonka\"\r\n---\r\nname=age\r\nshort=a\r\ndescription=How old are you?\r\nprompt=true\r\nconfirmation=true\r\n---\r\nname=gender\r\nshort=g\r\ndescription=male or female?\r\noptions=male female\r\nprompt=true\r\n---\r\nname=location\r\nshort=l\r\ndescription=Where do you live?\r\ndefault=\"chocolate factory\"\r\n---\r\nname=favorite_food\r\nshort=f\r\nallow_empty=true\r\noptions=chocolate pizza\r\ndescription=chocolate or pizza?\r\n---\r\nname=secret\r\nshort=s\r\ndefault=!@#%^\u0026*?/.,[]{}+-|\r\ndescription=special characters\r\n---\r\nname=language\r\nshort=lang\r\ndefault=$LANG\r\ndescription=default value can be a variable\r\n---\r\nname=password\r\nshort=p\r\nprompt=true\r\nhidden=true\r\nconfirmation=true\r\ndescription=What is your password?\r\n---\r\nname=happy\r\nshort=hp\r\nflag=true\r\ndescription=Flag for indicating that you are happy\r\n---\r\nname=ci\r\nshort=ci\r\nflag=true\r\ndescription=Flag for indicating it is a CI/CD process\r\n---\r\nname=username\r\nshort=un\r\nallow_env_var=true\r\ndescription=Username fetched from environment variable\r\ndefault=willywonka\r\n---\r\nname=bargs\r\ndescription=bash example.sh -n Willy --gender male -a 99\r\ndefault=irrelevant\r\n---\r\n---\r\n```\r\n\r\n\u003c!-- replacer_end_bargsvars --\u003e\r\n\r\n\u003c/details\u003e\r\n\r\n1. Add **one** of the following lines at the beginning of your application (see Usage below)\r\n\r\n   - `bargs.sh` is in the root folder of your project (just like in this repo)\r\n     ```bash\r\n     source \"${PWD}\"/\"$(dirname ${BASH_SOURCE[0]})\"/bargs.sh \"$@\"\r\n     ```\r\n   - `bargs.sh` is in a subfolder, for example `tools`\r\n     ```bash\r\n     source \"${PWD}\"/\"$(dirname ${BASH_SOURCE[0]})\"/tools/bargs.sh \"$@\"\r\n     ```\r\n\r\n2. The arguments are now available as environment variables, both lowercased and UPPERCASED (see Usage below)\r\n\r\n### Usage\r\n\r\nUsing the `bargs_vars` above in our application - `example.sh`\r\n\r\n```bash\r\n#!/bin/bash\r\nsource \"${PWD}\"/\"$(dirname ${BASH_SOURCE[0]})\"/bargs.sh \"$@\"\r\n\r\necho \"\r\nName:                  ~ $person_name\r\nAge:                   ~ $age\r\nGender:                ~ $gender\r\nLocation:              ~ $location\r\nFavorite food:         ~ $favorite_food\r\nSecret:                ~ $secret\r\nPassword:              ~ $password\r\nOS Language:           ~ $language\r\nI am happy:            ~ $happy\r\nCI Process:            ~ $CI\r\nUppercased var names:  ~ $PERSON_NAME, $AGE years old, from $LOCATION\r\nUsername from env var: ~ $username \" \\\r\n    | column -t -s \"~\"\r\n```\r\n\r\n#### Usage output\r\n\r\n\u003cdetails\u003e\u003csummary\u003e\r\nResults after running \u003ca href=\"https://github.com/unfor19/bargs/blob/master/tests.sh\"\u003etests.sh\u003c/a\u003e - Expand/Collapse\r\n\r\n\u003c/summary\u003e\r\n\r\n\u003c!-- replacer_start_usage --\u003e\r\n\r\n```\r\n-------------------------------------------------------\r\n[LOG] Bargs Vars Path - Should pass\r\n[LOG] Executing: source example.sh -a 33 --gender male -p mypassword\r\n[LOG] Output:\r\n\r\nName:                     Oompa Looma\r\nAge:                      33\r\nGender:                   male\r\nLocation:                 chocolate factory\r\nFavorite food:            \r\nSecret:                   !@#%^\u0026*?/.,[]{}+-|\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               \r\nCI Process:               \r\nUppercased var names:     Oompa Looma, 33 years old, from chocolate factory\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Help Menu - Should pass\r\n[LOG] Executing: source example.sh -h\r\n[LOG] Output:\r\n\r\n\r\nUsage: bash example.sh -n Willy --gender male -a 99\r\n\r\n\t--person_name    |  -n     [Willy Wonka]         What is your name?\r\n\t--age            |  -a     [REQUIRED]            How old are you?\r\n\t--gender         |  -g     [REQUIRED]            male or female?\r\n\t--location       |  -l     [chocolate factory]   Where do you live?\r\n\t--favorite_food  |  -f     []                    chocolate or pizza?\r\n\t--secret         |  -s     [!@#%^\u0026*?/.,[]{}+-|]  special characters\r\n\t--language       |  -lang  [C.UTF-8]             default value can be a variable\r\n\t--password       |  -p     [REQUIRED]            What is your password?\r\n\t--happy          |  -hp    [FLAG]                Flag for indicating that you are happy\r\n\t--ci             |  -ci    [FLAG]                Flag for indicating it is a CI/CD process\r\n\t--username       |  -un    [willywonka]          Username fetched from environment variable\r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Default Values - Should pass\r\n[LOG] Executing: source example.sh -a 99 --gender=male -p mypassword\r\n[LOG] Output:\r\n\r\nName:                     Willy Wonka\r\nAge:                      99\r\nGender:                   male\r\nLocation:                 chocolate factory\r\nFavorite food:            \r\nSecret:                   !@#%^\u0026*?/.,[]{}+-|\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               \r\nCI Process:               \r\nUppercased var names:     Willy Wonka, 99 years old, from chocolate factory\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] New Values - Should pass\r\n[LOG] Executing: source example.sh -a 23 --gender male -l=neverland -n meir -p mypassword\r\n[LOG] Output:\r\n\r\nName:                     meir\r\nAge:                      23\r\nGender:                   male\r\nLocation:                 neverland\r\nFavorite food:            \r\nSecret:                   !@#%^\u0026*?/.,[]{}+-|\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               \r\nCI Process:               \r\nUppercased var names:     meir, 23 years old, from neverland\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Valid Options - Should pass\r\n[LOG] Executing: source example.sh -a 23 --gender male -l neverland -n meir -f pizza -p=mypassword\r\n[LOG] Output:\r\n\r\nName:                     meir\r\nAge:                      23\r\nGender:                   male\r\nLocation:                 neverland\r\nFavorite food:            pizza\r\nSecret:                   !@#%^\u0026*?/.,[]{}+-|\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               \r\nCI Process:               \r\nUppercased var names:     meir, 23 years old, from neverland\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Special Characters - Should pass\r\n[LOG] Executing: source example.sh -a 99 --gender male -s MxTZf+6KHaAQltJWipe1oVRy -p mypassword\r\n[LOG] Output:\r\n\r\nName:                     Willy Wonka\r\nAge:                      99\r\nGender:                   male\r\nLocation:                 chocolate factory\r\nFavorite food:            \r\nSecret:                   MxTZf+6KHaAQltJWipe1oVRy\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               \r\nCI Process:               \r\nUppercased var names:     Willy Wonka, 99 years old, from chocolate factory\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Use Flag - Should pass\r\n[LOG] Executing: source example.sh -a 23 --gender male --happy -p mypassword -ci\r\n[LOG] Output:\r\n\r\nName:                     Willy Wonka\r\nAge:                      23\r\nGender:                   male\r\nLocation:                 chocolate factory\r\nFavorite food:            \r\nSecret:                   !@#%^\u0026*?/.,[]{}+-|\r\nPassword:                 mypassword\r\nOS Language:              C.UTF-8\r\nI am happy:               true\r\nCI Process:               true\r\nUppercased var names:     Willy Wonka, 23 years old, from chocolate factory\r\nUsername from env var:    runner \r\n\r\n[LOG] Test passed as expected\r\n-------------------------------------------------------\r\n[LOG] Empty Argument - Should fail\r\n[LOG] Executing: source example.sh -a 99 --gender -p mypassword\r\n[LOG] Output:\r\n\r\n[HINT] Valid options: male OR female\r\n[ERROR] Invalid value \"-p\" for the argument \"gender\"\r\n\r\nUsage: bash example.sh -n Willy --gender male -a 99\r\n\r\n\t--person_name    |  -n     [Willy Wonka]         What is your name?\r\n\t--age            |  -a     [REQUIRED]            How old are you?\r\n\t--gender         |  -g     [REQUIRED]            male or female?\r\n\t--location       |  -l     [chocolate factory]   Where do you live?\r\n\t--favorite_food  |  -f     []                    chocolate or pizza?\r\n\t--secret         |  -s     [!@#%^\u0026*?/.,[]{}+-|]  special characters\r\n\t--language       |  -lang  [C.UTF-8]             default value can be a variable\r\n\t--password       |  -p     [REQUIRED]            What is your password?\r\n\t--happy          |  -hp    [FLAG]                Flag for indicating that you are happy\r\n\t--ci             |  -ci    [FLAG]                Flag for indicating it is a CI/CD process\r\n\t--username       |  -un    [willywonka]          Username fetched from environment variable\r\n\r\n[LOG] Test failed as expected\r\n-------------------------------------------------------\r\n[LOG] Unknown Argument - Should fail\r\n[LOG] Executing: source example.sh -a 99 -u meir -p mypassword\r\n[LOG] Output:\r\n\r\n[ERROR] Unknown argument \"-u\"\r\n\r\nUsage: bash example.sh -n Willy --gender male -a 99\r\n\r\n\t--person_name    |  -n     [Willy Wonka]         What is your name?\r\n\t--age            |  -a     [REQUIRED]            How old are you?\r\n\t--gender         |  -g     [REQUIRED]            male or female?\r\n\t--location       |  -l     [chocolate factory]   Where do you live?\r\n\t--favorite_food  |  -f     []                    chocolate or pizza?\r\n\t--secret         |  -s     [!@#%^\u0026*?/.,[]{}+-|]  special characters\r\n\t--language       |  -lang  [C.UTF-8]             default value can be a variable\r\n\t--password       |  -p     [REQUIRED]            What is your password?\r\n\t--happy          |  -hp    [FLAG]                Flag for indicating that you are happy\r\n\t--ci             |  -ci    [FLAG]                Flag for indicating it is a CI/CD process\r\n\t--username       |  -un    [willywonka]          Username fetched from environment variable\r\n\r\n[LOG] Test failed as expected\r\n-------------------------------------------------------\r\n[LOG] Invalid Options - Should fail\r\n[LOG] Executing: source example.sh -a 23 --gender male -l neverland -n meir -f notgood -p mypassword\r\n[LOG] Output:\r\n\r\n[HINT] Valid options: chocolate OR pizza\r\n[ERROR] Invalid value \"notgood\" for the argument \"favorite_food\"\r\n\r\nUsage: bash example.sh -n Willy --gender male -a 99\r\n\r\n\t--person_name    |  -n     [Willy Wonka]         What is your name?\r\n\t--age            |  -a     [REQUIRED]            How old are you?\r\n\t--gender         |  -g     [REQUIRED]            male or female?\r\n\t--location       |  -l     [chocolate factory]   Where do you live?\r\n\t--favorite_food  |  -f     []                    chocolate or pizza?\r\n\t--secret         |  -s     [!@#%^\u0026*?/.,[]{}+-|]  special characters\r\n\t--language       |  -lang  [C.UTF-8]             default value can be a variable\r\n\t--password       |  -p     [REQUIRED]            What is your password?\r\n\t--happy          |  -hp    [FLAG]                Flag for indicating that you are happy\r\n\t--ci             |  -ci    [FLAG]                Flag for indicating it is a CI/CD process\r\n\t--username       |  -un    [willywonka]          Username fetched from environment variable\r\n\r\n[LOG] Test failed as expected\r\n-------------------------------------------------------\r\n[LOG] Missing bargs_vars - Should fail\r\n[LOG] Executing: source example.sh -h\r\n[LOG] Output:\r\n\r\n[ERROR] Make sure bargs_vars is in the same folder as bargs.sh\r\n\tAnother option - export BARGS_VARS_PATH=\"/path/to/my_bargs_vars\"\r\n\r\n[LOG] Test failed as expected\r\n```\r\n\r\n\u003c!-- replacer_end_usage --\u003e\r\n\r\n\u003c/details\u003e\r\n\r\n## Package your application with Docker\r\n\r\nYou can use [Docker](https://www.docker.com/why-docker) to package your Bash script as a Docker image, see the following example\r\n\r\n1. Clone this repository\r\n\r\n1. Build the image, see [Dockerfile.example](https://github.com/unfor19/bargs/blob/master/Dockerfile.example), tag it `bargs:example`\r\n\r\n   ```bash\r\n   docker build -f Dockerfile.example -t bargs:example .\r\n   ```\r\n\r\n1. Run a container that is based on the image above\r\n   ```bash\r\n   docker run --rm -it bargs:example -a 23 -g male\r\n   ```\r\n\r\n## Use this repository as a template\r\n\r\nThinking of writing a new Bash script? Hit the [Use this template](https://github.com/unfor19/bargs/generate) button and get a fully working example of bargs, including [GitHub Actions workflows](https://github.com/unfor19/bargs/tree/master/.github/workflows).\r\n\r\n## Contributing\r\n\r\nReport issues/questions/feature requests on the [Issues](https://github.com/unfor19/bargs/issues) section.\r\n\r\nPull requests are welcome! These are the steps:\r\n\r\n1. Fork this repo\r\n1. Create your feature branch from master (`git checkout -b my-new-feature`)\r\n1. Add the code of your new feature\r\n1. Run tests on your code, feel free to add more tests\r\n   ```bash\r\n   bash tests.sh\r\n   ... # All good? Move on to the next step\r\n   ```\r\n1. Commit your remarkable changes (`git commit -am 'Added new feature'`)\r\n1. Push to the branch (`git push --set-up-stream origin my-new-feature`)\r\n1. Create a new Pull Request and provide details about your changes\r\n\r\n## Authors\r\n\r\nCreated and maintained by [Meir Gabay](https://github.com/unfor19)\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/unfor19/bargs/blob/master/LICENSE) file for details\r\n","funding_links":[],"categories":["cli"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfor19%2Fbargs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funfor19%2Fbargs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfor19%2Fbargs/lists"}