From b4b2d7230a1055241df9a3ff6358bc684442004d Mon Sep 17 00:00:00 2001 From: Matteo Pacini Date: Fri, 23 May 2025 22:17:15 +0100 Subject: [PATCH] gdevelop: added update script --- pkgs/by-name/gd/gdevelop/darwin.nix | 8 ++++++- pkgs/by-name/gd/gdevelop/linux.nix | 2 ++ pkgs/by-name/gd/gdevelop/package.nix | 3 +++ pkgs/by-name/gd/gdevelop/update.sh | 33 ++++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 pkgs/by-name/gd/gdevelop/update.sh diff --git a/pkgs/by-name/gd/gdevelop/darwin.nix b/pkgs/by-name/gd/gdevelop/darwin.nix index 9415ee4d4d37..3126b72c43a9 100644 --- a/pkgs/by-name/gd/gdevelop/darwin.nix +++ b/pkgs/by-name/gd/gdevelop/darwin.nix @@ -6,9 +6,15 @@ pname, version, meta, + passthru, }: stdenvNoCC.mkDerivation (finalAttrs: { - inherit pname version meta; + inherit + pname + version + meta + passthru + ; src = fetchurl { url = "https://github.com/4ian/GDevelop/releases/download/v${version}/GDevelop-5-${version}-universal-mac.zip"; diff --git a/pkgs/by-name/gd/gdevelop/linux.nix b/pkgs/by-name/gd/gdevelop/linux.nix index fcc51b141110..9817ec1b6b2c 100644 --- a/pkgs/by-name/gd/gdevelop/linux.nix +++ b/pkgs/by-name/gd/gdevelop/linux.nix @@ -6,6 +6,7 @@ version, pname, meta, + passthru, }: let src = @@ -29,6 +30,7 @@ appimageTools.wrapType2 { version src meta + passthru ; extraInstallCommands = '' diff --git a/pkgs/by-name/gd/gdevelop/package.nix b/pkgs/by-name/gd/gdevelop/package.nix index c8f07e752541..5ab41784a71e 100644 --- a/pkgs/by-name/gd/gdevelop/package.nix +++ b/pkgs/by-name/gd/gdevelop/package.nix @@ -20,6 +20,7 @@ let mainProgram = "gdevelop"; platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin; }; + passthru.updateScript = ./update.sh; in if stdenv.hostPlatform.isDarwin then callPackage ./darwin.nix { @@ -27,6 +28,7 @@ if stdenv.hostPlatform.isDarwin then pname version meta + passthru ; } else @@ -35,5 +37,6 @@ else pname version meta + passthru ; } diff --git a/pkgs/by-name/gd/gdevelop/update.sh b/pkgs/by-name/gd/gdevelop/update.sh new file mode 100755 index 000000000000..ac91a41916db --- /dev/null +++ b/pkgs/by-name/gd/gdevelop/update.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq gnused + +set -euo pipefail + +cd "$(dirname "$0")" || exit 1 + +# Grab latest version from the GitHub repository +LATEST_VER="$(curl --fail -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/4ian/GDevelop/releases" | jq -r '.[0].tag_name' | sed 's/^v//')" +CURRENT_VER="$(grep -oP 'version = "\K[^"]+' package.nix)" + +if [[ "$LATEST_VER" == "$CURRENT_VER" ]]; then + echo "gdevelop is up-to-date" + exit 0 +fi + +echo "Updating gdevelop from $CURRENT_VER to $LATEST_VER" + +# Update the version +sed -i "s#version = \".*\";#version = \"$LATEST_VER\";#g" package.nix + +# Update hashes +# - Linux + +LINUX_HASH="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/4ian/GDevelop/releases/download/v${LATEST_VER}/GDevelop-5-${LATEST_VER}.AppImage")")" +sed -i "s#hash = \".*\"#hash = \"$LINUX_HASH\"#g" linux.nix + +# - Darwin + +DARWIN_HASH="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/4ian/GDevelop/releases/download/v${LATEST_VER}/GDevelop-5-${LATEST_VER}-universal-mac.zip")")" +sed -i "s#hash = \".*\"#hash = \"$DARWIN_HASH\"#g" darwin.nix + +echo "Updated gdevelop to $LATEST_VER"