diff --git a/release.sh b/release.sh index 5ddaaba8..a2d4b203 100755 --- a/release.sh +++ b/release.sh @@ -24,8 +24,16 @@ if [ ! "$NO_COMMIT" = "" ] && [ ! "$NO_COMMIT" = "--no-commit" ]; then exit 1 fi +function maybe_git() { + if [ "$NO_COMMIT" = "--no-commit" ]; then + echo "Would run: git $*" + else + git "$@" + fi +} + # Check that no out-standing changes in git -if [ -n "$(git status --porcelain)" ]; then +if [ ! "$NO_COMMIT" = "" ] && [ -n "$(git status --porcelain)" ]; then echo "Uncommitted changes, please commit first" exit 1 fi @@ -46,18 +54,18 @@ for PROJECT_TOML_FILE in agb/Cargo.toml agb-*/Cargo.toml; do # Also update the lock file (cd "$DIRECTORY" && cargo update) - git add "$DIRECTORY/Cargo.toml" "$DIRECTORY/Cargo.lock" || echo "Failed to git add a file, continuing anyway" + maybe_git add "$DIRECTORY/Cargo.toml" "$DIRECTORY/Cargo.lock" || echo "Failed to git add a file, continuing anyway" if [ "$DIRECTORY" = "agb" ]; then # also update the agb version in the template and the examples sed -i -e "s/^agb = \".*\"/agb = \"$VERSION\"/" template/Cargo.toml - git add template/Cargo.toml + maybe_git add template/Cargo.toml for EXAMPLE_TOML_FILE in examples/*/Cargo.toml book/games/*/Cargo.toml; do EXAMPLE_DIR=$(dirname "$EXAMPLE_TOML_FILE") sed -E -i -e "/agb =/ s/version = \"[^\"]+\"/version = \"$VERSION\"/" "$EXAMPLE_DIR/Cargo.toml" (cd "$EXAMPLE_DIR" && cargo update) - git add "$EXAMPLE_DIR"/{Cargo.toml,Cargo.lock} || echo "Failed to git add a file, continuing anyway" + maybe_git add "$EXAMPLE_DIR"/{Cargo.toml,Cargo.lock} || echo "Failed to git add a file, continuing anyway" done else PROJECT_NAME_WITH_UNDERSCORES=$(echo -n "$DIRECTORY" | tr - _) @@ -66,7 +74,7 @@ for PROJECT_TOML_FILE in agb/Cargo.toml agb-*/Cargo.toml; do sed -i -E -e "s/($PROJECT_NAME_WITH_UNDERSCORES = .*version = \")[^\"]+(\".*)/\1$VERSION\2/" "$CARGO_TOML_FILE" (cd "$(dirname "$CARGO_TOML_FILE")" && cargo generate-lockfile) - git add "$CARGO_TOML_FILE" "${CARGO_TOML_FILE/.toml/.lock}" || echo "Failed to git add a file, continuing anyway" + maybe_git add "$CARGO_TOML_FILE" "${CARGO_TOML_FILE/.toml/.lock}" || echo "Failed to git add a file, continuing anyway" done fi done @@ -81,13 +89,11 @@ for EXAMPLE_TOML_FILE in examples/*/Cargo.toml book/games/*/Cargo.toml; do (cd "$EXAMPLE_DIR" && cargo check --release) done -if [ ! "$NO_COMMIT" = "--no-commit" ]; then - # Commit the Cargo.toml changes - git commit -m "Release v$VERSION" +# Commit the Cargo.toml changes +maybe_git commit -m "Release v$VERSION" - # Tag the version - git tag -a "$TAGNAME" -m "v$VERSION" +# Tag the version +maybe_git tag -a "$TAGNAME" -m "v$VERSION" - echo "Done! Push with" - echo "git push --atomic origin master $TAGNAME" -fi \ No newline at end of file +echo "Done! Push with" +echo "git push --atomic origin master $TAGNAME"