update-scripts/update: fix 'has changed' condition when not committing

This commit is contained in:
Matt Sturgeon 2025-06-05 11:18:40 +01:00
parent fcffcca3fd
commit 73e273a50c
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299

View file

@ -31,22 +31,47 @@ writeShellApplication {
update_args+=( "--commit-lock-file" ) update_args+=( "--commit-lock-file" )
fi fi
currentCommit() {
git show --no-patch --format=%h
}
hasChanges() {
old="$1"
new="$2"
if [ -n "$commit" ]; then
[ "$old" != "$new" ]
elif git diff --quiet; then
return 1
else
return 0
fi
}
writeGitHubOutput() { writeGitHubOutput() {
if [ -n "$use_github_output" ]; then if [ -n "$use_github_output" ] && [ -n "$commit" ]; then
( {
echo "$1<<EOF" echo "$1<<EOF"
git show --no-patch --format=%b git show --no-patch --format=%b
echo "EOF" echo "EOF"
) >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
fi fi
} }
versionInfo() { versionInfo() {
extra_args=( )
if [ "$1" = "--amend" ]; then
extra_args+=(
"--amend"
"--no-edit"
)
fi
nix-build ./update-scripts -A version-info nix-build ./update-scripts -A version-info
./result/bin/version-info ./result/bin/version-info
if [ -n "$commit" ]; then if [ -n "$commit" ]; then
git add version-info.toml git add version-info.toml
git commit "$@" git commit "''${extra_args[@]}"
fi fi
} }
@ -57,27 +82,27 @@ writeShellApplication {
fi fi
# Update the root lockfile # Update the root lockfile
old=$(git show --no-patch --format=%h) old=$(currentCommit)
echo "Updating root lockfile" echo "Updating root lockfile"
nix flake update "''${update_args[@]}" nix flake update "''${update_args[@]}"
new=$(git show --no-patch --format=%h) new=$(currentCommit)
if [ "$old" != "$new" ]; then if hasChanges "$old" "$new"; then
echo "Updating version-info" echo "Updating version-info"
versionInfo --amend --no-edit versionInfo --amend
writeGitHubOutput root_lock_body writeGitHubOutput root_lock_body
fi fi
# Update the dev lockfile # Update the dev lockfile
root_nixpkgs=$(nix eval --raw --file . 'inputs.nixpkgs.rev') root_nixpkgs=$(nix eval --raw --file . 'inputs.nixpkgs.rev')
old=$(git show --no-patch --format=%h) old=$(currentCommit)
echo "Updating dev lockfile" echo "Updating dev lockfile"
nix flake update "''${update_args[@]}" \ nix flake update "''${update_args[@]}" \
--override-input 'dev-nixpkgs' "github:NixOS/nixpkgs/$root_nixpkgs" \ --override-input 'dev-nixpkgs' "github:NixOS/nixpkgs/$root_nixpkgs" \
--flake './flake/dev' --flake './flake/dev'
new=$(git show --no-patch --format=%h) new=$(currentCommit)
if [ "$old" != "$new" ]; then if hasChanges "$old" "$new"; then
echo "Updating version-info" echo "Updating version-info"
versionInfo --amend --no-edit versionInfo --amend
writeGitHubOutput dev_lock_body writeGitHubOutput dev_lock_body
fi fi
''; '';