{"id":18837080,"url":"https://github.com/bkuhlmann/bashsmith","last_synced_at":"2025-10-07T06:32:48.696Z","repository":{"id":19871420,"uuid":"23135142","full_name":"bkuhlmann/bashsmith","owner":"bkuhlmann","description":"A template for smithing Bash scripts.","archived":false,"fork":false,"pushed_at":"2025-02-22T17:26:34.000Z","size":242,"stargazers_count":21,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T11:06:38.872Z","etag":null,"topics":["bash","shell"],"latest_commit_sha":null,"homepage":"https://alchemists.io/projects/bashsmith","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkuhlmann.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.adoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["bkuhlmann"]}},"created_at":"2014-08-20T03:53:32.000Z","updated_at":"2025-03-29T01:50:08.000Z","dependencies_parsed_at":"2024-04-21T17:14:06.639Z","dependency_job_id":"525d9959-f01d-4def-a314-4527213baf92","html_url":"https://github.com/bkuhlmann/bashsmith","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fbashsmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fbashsmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fbashsmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fbashsmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkuhlmann","download_url":"https://codeload.github.com/bkuhlmann/bashsmith/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248830904,"owners_count":21168368,"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","shell"],"created_at":"2024-11-08T02:33:53.817Z","updated_at":"2025-10-07T06:32:48.691Z","avatar_url":"https://github.com/bkuhlmann.png","language":"Shell","funding_links":["https://github.com/sponsors/bkuhlmann"],"categories":[],"sub_categories":[],"readme":":toc: macro\n:toclevels: 5\n:figure-caption!:\n\n= Bashsmith\n\nBashsmith is a project template for smithing new link:https://www.gnu.org/software/bash[Bash]\nshell-based projects based on best practices. This project is meant to be cloned and customized for\nyour specific shell scripting needs giving you a foundation from which to get started faster than\nwith an empty slate.\n\ntoc::[]\n\n== Features\n\n* Provides default project structure for creating new Bash projects.\n* Provides default settings for making Bash scripts easier to develop and debug.\n\n== Requirements\n\n* link:https://www.gnu.org/software/bash[Bash]\n\n== Setup\n\nTo install, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/bashsmith.git\ncd bashsmith\ngit checkout 6.7.0\n----\n\n== Usage\n\n=== File Structure\n\nAll files located within this project provide the basic structure/blueprint for creating new Bash\nscript projects. The structure is organized as follows:\n\n....\n├── CHANGES.adoc          # The details of past version releases.\n├── CODE_OF_CONDUCT.adoc  # Guidelines for encouraging harassment-free contributions.\n├── CONTRIBUTING.adoc     # The details of how to contribute to the project.\n├── LICENSE.adoc          # The license and copyright legalities of the project.\n├── README.adoc           # The project overview, setup, usage, testing, etc.\n├── bin                   # A folder for executable Bash scripts.\n│   └── run               # The main run script (which loads the lib and settings).\n├── lib                   # A folder for Bash functions and custom code.\n│   └── cli.sh            # Provides CLI prompt options for the main `run` script.\n├── settings              # The global/project settings for easy manipulation/tweaking.\n│   └── main.sh           # The global settings (set with safe defaults).\n....\n\n=== Template\n\nThe following documents what each template option is:\n\n[source,bash]\n----\n# Exit, with error message, when attempting to use an undefined variable.\n# Alias: `set -u`.\nset -o nounset\n\n# Abort script at first error when a command exits with non-zero status.\n# Alias: `set -e`.\nset -o errexit\n\n# Return exit status of the last command in the pipe that returned a non-zero return value.\nset -o pipefail\n\n# Defines newlines and tabs as delimiters for splitting words and iterating arrays.\nIFS=$'\\n\\t'\n----\n\n=== Debugging\n\nFor debugging purposes, you can add the following option:\n\n[source,bash]\n----\n# Prints all executed commands.\n# Alias: `set -x`.\nset -o xtrace\n----\n\nThe above is useful for debugging purposes but probably not something you want always enabled.\n\n💡 For additional options, use `help set` to learn more.\n\n== Development\n\nTo contribute, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/bashsmith.git\ncd bashsmith\n----\n\n== Tests\n\nConsider using link:https://github.com/sstephenson/bats[Bats].\n\n== link:https://alchemists.io/policies/license[License]\n\n== link:https://alchemists.io/policies/security[Security]\n\n== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]\n\n== link:https://alchemists.io/policies/contributions[Contributions]\n\n== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]\n\n== link:https://alchemists.io/projects/bashsmith/versions[Versions]\n\n== link:https://alchemists.io/community[Community]\n\n== Credits\n\nEngineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fbashsmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkuhlmann%2Fbashsmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fbashsmith/lists"}