diff --git a/flake.nix b/flake.nix index 0d67820..f20e819 100644 --- a/flake.nix +++ b/flake.nix @@ -52,7 +52,7 @@ pkgs.gnused pkgs.jq ]; - text = builtins.readFile ./release-tools/bump-changelogs.sh; + text = builtins.readFile ./release-tools/bump-changelogs.bash; }; x52-update-release-notes = pkgs.writeShellApplication { @@ -64,7 +64,7 @@ pkgs.git pkgs.jq ]; - text = builtins.readFile ./release-tools/update-release-notes.sh; + text = builtins.readFile ./release-tools/update-release-notes.bash; }; x52-comment-release-pr = pkgs.writeShellApplication { @@ -74,7 +74,7 @@ pkgs.gh pkgs.jq ]; - text = builtins.readFile ./release-tools/comment-release-pr.sh; + text = builtins.readFile ./release-tools/comment-release-pr.bash; }; x52-comment-release-assets-uploaded = pkgs.writeShellApplication { @@ -84,7 +84,7 @@ pkgs.gh pkgs.jq ]; - text = builtins.readFile ./release-tools/comment-release-assets-uploaded.sh; + text = builtins.readFile ./release-tools/comment-release-assets-uploaded.bash; }; x52-release-tools = pkgs.symlinkJoin { @@ -117,7 +117,17 @@ BASH_BIN = "${pkgs.bash}/bin/bash"; } '' - bash ${./release-tools/test.sh} + bash ${./release-tools/test.bash} + touch "$out" + ''; + + shellcheck = + pkgs.runCommand "check-shellcheck" + { + nativeBuildInputs = [ pkgs.shellcheck ]; + } + '' + shellcheck ${./release-tools}/*.bash touch "$out" ''; diff --git a/release-tools/bump-changelogs.sh b/release-tools/bump-changelogs.bash similarity index 99% rename from release-tools/bump-changelogs.sh rename to release-tools/bump-changelogs.bash index 40e6f4c..4ed3748 100644 --- a/release-tools/bump-changelogs.sh +++ b/release-tools/bump-changelogs.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_pr_json="${RELEASE_PLZ_PR_JSON:?RELEASE_PLZ_PR_JSON is required}" cargo_bin="${X52_CARGO:-cargo}" diff --git a/release-tools/comment-release-assets-uploaded.sh b/release-tools/comment-release-assets-uploaded.bash similarity index 99% rename from release-tools/comment-release-assets-uploaded.sh rename to release-tools/comment-release-assets-uploaded.bash index 92c8ff8..313fa68 100644 --- a/release-tools/comment-release-assets-uploaded.sh +++ b/release-tools/comment-release-assets-uploaded.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${1:?release-plz releases JSON is required}" marker="" diff --git a/release-tools/comment-release-pr.sh b/release-tools/comment-release-pr.bash similarity index 99% rename from release-tools/comment-release-pr.sh rename to release-tools/comment-release-pr.bash index 99cdde5..9636c66 100644 --- a/release-tools/comment-release-pr.sh +++ b/release-tools/comment-release-pr.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${1:?release-plz releases JSON is required}" marker="" diff --git a/release-tools/test.sh b/release-tools/test.bash similarity index 98% rename from release-tools/test.sh rename to release-tools/test.bash index 92960a4..d49457e 100644 --- a/release-tools/test.sh +++ b/release-tools/test.bash @@ -1,4 +1,5 @@ set -euo pipefail +shopt -s inherit_errexit test_root="$(mktemp -d)" trap 'rm -rf "$test_root"' EXIT @@ -36,6 +37,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/cargo" cat >>"$fake_bin/cargo" <<'EOF' set -euo pipefail +shopt -s inherit_errexit [[ "$*" == "metadata --format-version=1 --no-deps" ]] printf '{"packages":[{"name":"demo","manifest_path":"%s/Cargo.toml"}]}\n' "$FIXTURE_ROOT" EOF @@ -43,6 +45,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/gh" cat >>"$fake_bin/gh" <<'EOF' set -euo pipefail +shopt -s inherit_errexit printf 'gh' >>"$COMMAND_LOG" printf ' <%s>' "$@" >>"$COMMAND_LOG" printf '\n' >>"$COMMAND_LOG" @@ -84,6 +87,7 @@ EOF printf '#!%s\n' "$bash_bin" >"$fake_bin/git" cat >>"$fake_bin/git" <<'EOF' set -euo pipefail +shopt -s inherit_errexit if [[ "$*" == "diff --cached --quiet" ]]; then exit 1 fi diff --git a/release-tools/update-release-notes.sh b/release-tools/update-release-notes.bash similarity index 98% rename from release-tools/update-release-notes.sh rename to release-tools/update-release-notes.bash index b51f6fd..9b4975f 100644 --- a/release-tools/update-release-notes.sh +++ b/release-tools/update-release-notes.bash @@ -1,4 +1,5 @@ set -eEuo pipefail +shopt -s inherit_errexit release_plz_releases_json="${RELEASE_PLZ_RELEASES_JSON:?RELEASE_PLZ_RELEASES_JSON is required}" cargo_bin="${X52_CARGO:-cargo}"