From b1162ce7a883993e1219de8f2dbdb0f4ede585c1 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 9 Apr 2024 20:33:00 -0400 Subject: [PATCH] feat(updateImage): check version before downloading image --- modules/arion/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/arion/default.nix b/modules/arion/default.nix index 41da620..c132960 100644 --- a/modules/arion/default.nix +++ b/modules/arion/default.nix @@ -103,17 +103,24 @@ in { runtimeInputs = [ (writeShellApplication { name = "pullImage"; - runtimeInputs = [nix-prefetch-docker]; + runtimeInputs = [nix-prefetch-docker skopeo]; text = '' FILE="$1" IMAGE=$(sed -n 's/.*imageName = "\([^"]*\).*/\1/p' "$FILE") TAG=$(sed -n 's/.*finalImageTag = "\([^"]*\).*/\1/p' "$FILE") + CURRENT_DIGEST=$(sed -n 's/.*imageDigest = "\([^"]*\).*/\1/p' "$FILE") + NEW_DIGEST=$(skopeo inspect "docker://$IMAGE:$TAG" | jq '.Digest' -r) + echo "$IMAGE $TAG" if ! grep "Locked" "$FILE"; then - PREFETCH=$(nix-prefetch-docker "$IMAGE" "$TAG") - echo -e "pkgs:\npkgs.dockerTools.pullImage $PREFETCH" > "$FILE" + if [[ "$CURRENT_DIGEST" == "$NEW_DIGEST" ]]; then + echo "Already up-to-date" + else + PREFETCH=$(nix-prefetch-docker "$IMAGE" "$TAG") + echo -e "pkgs:\npkgs.dockerTools.pullImage $PREFETCH" > "$FILE" + fi fi ''; })