Skip to content

Commit

Permalink
Added Utility to Accept Snapshots
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelstaib committed Dec 13, 2023
1 parent 3ed4025 commit d72ad9d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 43 deletions.
31 changes: 31 additions & 0 deletions .build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using System.Linq;
using System;
using System.IO;
using Serilog;

[UnsetVisualStudioEnvironmentVariables]
partial class Build : NukeBuild
Expand Down Expand Up @@ -100,6 +101,36 @@ partial class Build : NukeBuild
RootDirectory / "matrix.json",
JsonConvert.SerializeObject(matrix));
});

Target Accept => _ => _
.Executes(() =>
{
foreach (var mismatchDir in Directory.GetDirectories(
RootDirectory, "__MISMATCH__", SearchOption.AllDirectories))
{
Log.Information("Analyzing {0} ...", mismatchDir);

var snapshotDir = Directory.GetParent(mismatchDir)!.FullName;
foreach (var mismatch in Directory.GetFiles(
mismatchDir, "*.*", SearchOption.TopDirectoryOnly))
{
var snapshot = Path.Combine(snapshotDir, Path.GetFileName(mismatch));
if (File.Exists(snapshot))
{
File.Delete(snapshot);
File.Move(mismatch, snapshot);
}
}

foreach (var mismatch in Directory.GetFiles(
mismatchDir, "*.*", SearchOption.AllDirectories))
{
File.Delete(mismatch);
}

Directory.Delete(mismatchDir, true);
}
});
}


Expand Down
6 changes: 6 additions & 0 deletions accept.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
:; set -eo pipefail
:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
:; ${SCRIPT_DIR}/accept.sh "$@"
:; exit $?

./build.cmd accept
44 changes: 1 addition & 43 deletions accept.sh
Original file line number Diff line number Diff line change
@@ -1,45 +1,3 @@
#!/bin/zsh

# Use a variable to keep track of whether any directories were found
found_mismatch=false

# Use a variable to check if the header has been printed
header_printed=false

# Find all __MISMATCH__ folders
find . -type d -name "__MISMATCH__" | while read mismatch_dir; do
# Mark that we found a mismatch directory
found_mismatch=true

# Get the parent __snapshots__ directory
snapshot_dir="$(dirname "$mismatch_dir")"

# If there are files in the directory, copy them
if [ "$(ls -A "$mismatch_dir")" ]; then
for file in "$mismatch_dir"/*; do
if [ -f "$file" ]; then
cp "$file" "$snapshot_dir/"

# Print the header only once
if [ "$header_printed" = false ]; then
echo "Found Updated Snapshots:"
header_printed=true
fi

# Extract relevant path details and print
relative_path="${snapshot_dir#./src/HotChocolate/}" # strip the common prefix
echo "- $relative_path/$(basename "$file")"
fi
done
fi

# Remove the __MISMATCH__ directory
rm -r "$mismatch_dir"
done

# Check if any directories were found
if [ "$found_mismatch" = false ]; then
echo "All snapshots are up to date!"
else
echo "\nDone!"
fi
./build.sh accept

0 comments on commit d72ad9d

Please sign in to comment.