-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Brandon Shoop edited this page Jun 2, 2026
·
1 revision
git clone https://github.com/1shooperman/cli-tools.git
cd cli-toolsNo build step required — all scripts are plain bash.
make testRequires bats-core:
brew install bats-coremake lintRequires shellcheck:
brew install shellcheckBoth lint and test must pass before merging.
- Create
bin/<name>— source_bootstrapthen your lib file:
#!/bin/bash
# shellcheck source=bin/_bootstrap
source "${BASH_SOURCE[0]%/*}/_bootstrap"
# shellcheck source=lib/<name>cmds.sh
source "$CLI_TOOL_ROOT/lib/<name>cmds.sh"
my_function "$@"- Create
lib/<name>cmds.shwith the implementation. Sourcecommon.shif you needgechoorshow_progress:
#!/usr/bin/env bash
# shellcheck source=lib/common.sh
source "$CLI_TOOL_ROOT/lib/common.sh"
my_function() { ... }-
Add a
tests/test_<name>.batsfile covering the happy path and key error cases. -
Add a wiki page at
wiki/cli-tools.wiki/<name>.mdand link it from Home. -
Update the Structure section in the README.
Add it to lib/common.sh and cover it in tests/test_common.bats.
Releases are triggered manually via the Release (Manual) GitHub Actions workflow. Choose a bump type (patch, minor, or major) and the workflow tags, creates a GitHub release, and bumps the Homebrew tap formula automatically.