diff --git a/.github/workflows/build-test-publish-release.yml b/.github/workflows/build-test-publish-release.yml index bbce9c3..434bb65 100644 --- a/.github/workflows/build-test-publish-release.yml +++ b/.github/workflows/build-test-publish-release.yml @@ -85,22 +85,25 @@ jobs: # Update version in script sed -i "s/VERSION=\".*\"/VERSION=\"${VERSION}\"/" dist/kubectl-envx chmod +x dist/kubectl-envx + tar -czf dist/kubectl-envx.tar.gz -C dist kubectl-envx - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: - files: dist/kubectl-envx + files: dist/kubectl-envx.zip name: Release ${{ github.ref_name }} body: | ## kubectl-envx ${{ github.ref_name }} - Binary: `kubectl-envx` + Archive: `kubectl-envx.tar.gz` ### Installation ```bash - curl -Lo kubectl-envx https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/kubectl-envx + curl -Lo kubectl-envx.tar.gz https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/kubectl-envx.tar.gz + tar xzf kubectl-envx.tar.gz chmod +x kubectl-envx sudo mv kubectl-envx /usr/local/bin/ + rm kubectl-envx.tar.gz ``` draft: false prerelease: false diff --git a/kubectl-envx b/kubectl-envx index 9a268f7..7223b75 100755 --- a/kubectl-envx +++ b/kubectl-envx @@ -11,7 +11,7 @@ set -Eeo pipefail VERSION="0.0.0-dev" # release build pinned usage() { - ORIGIN_SCRIPT=$(basename "$0") + ORIGIN_SCRIPT="kubectl envx" # assert used as kubectl plugin is the primary usecase echo "Usage: $ORIGIN_SCRIPT [-n|--namespace ] [-c|--container ] [ENV_KEY=ENV_VALUE...] [-- command [args...]]" echo "Version: $VERSION" @@ -23,7 +23,6 @@ usage() { echo " $ORIGIN_SCRIPT deployment/myapp -n prod -c nginx MY_VAR=value # Combined usage" echo " $ORIGIN_SCRIPT deployment/myapp -- env # Run command with variables" echo " $ORIGIN_SCRIPT deployment/myapp -c nginx -- env # Run command with container vars" - exit 1 } # Initialize variables @@ -42,6 +41,10 @@ while [[ $# -gt 0 ]]; do fi case $1 in + -h|--help) + usage + exit 0 + ;; -n|--namespace) NAMESPACE="$2" shift 2 @@ -69,6 +72,7 @@ while [[ $# -gt 0 ]]; do *) echo "Error: Invalid argument '$1'" usage + exit 1 ;; esac done @@ -77,6 +81,7 @@ done if [[ -z "$RESOURCE" ]]; then echo "Error: Resource (kind/name) is required" usage + exit 1 fi # Build kubectl arguments array for get commands diff --git a/test/test_main.bats b/test/test_main.bats index 4761b43..421fa89 100644 --- a/test/test_main.bats +++ b/test/test_main.bats @@ -44,6 +44,16 @@ kubectl-envx() { assert_output --partial "Error: Invalid argument 'INVALID'" } +@test "displays usage on -h and --help" { + run kubectl-envx --help + assert_success + assert_output --partial "Usage:" + + run kubectl-envx -h + assert_success + assert_output --partial "Usage:" +} + @test "deployment/noenv: prints ENV (nothing)" { run kubectl-envx deployment/noenv assert_success