From 1a776b0958708740f02de4e8e5aa0b8dc30fc8d7 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sat, 17 May 2025 21:40:06 +0900 Subject: [PATCH] podman-desktop: refine updateScript to bump electron and pnpm version --- pkgs/by-name/po/podman-desktop/package.nix | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index b29e82e2b896..19fc160e6b76 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -10,6 +10,11 @@ makeDesktopItem, darwin, nix-update-script, + _experimental-update-script-combinators, + writeShellApplication, + nix, + jq, + gnugrep, }: let @@ -19,7 +24,32 @@ stdenv.mkDerivation (finalAttrs: { pname = "podman-desktop"; version = "1.18.1"; - passthru.updateScript = nix-update-script { }; + passthru.updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { }) + (lib.getExe (writeShellApplication { + name = "${finalAttrs.pname}-dependencies-updater"; + runtimeInputs = [ + nix + jq + gnugrep + ]; + runtimeEnv = { + PNAME = finalAttrs.pname; + PKG_FILE = builtins.toString ./package.nix; + }; + text = '' + new_src="$(nix-build --attr "pkgs.$PNAME.src" --no-out-link)" + new_electron_major="$(jq '.devDependencies.electron' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)" + new_pnpm_major="$(jq '.packageManager' "$new_src/package.json" | grep --perl-regexp --only-matching '\d+' | head -n 1)" + sed -i -E "s/electron_[0-9]+/electron_$new_electron_major/g" "$PKG_FILE" + sed -i -E "s/pnpm_[0-9]+/pnpm_$new_pnpm_major/g" "$PKG_FILE" + ''; + })) + (nix-update-script { + # Changing the pnpm version requires updating `pnpmDeps.hash`. + extraArgs = [ "--version=skip" ]; + }) + ]; src = fetchFromGitHub { owner = "containers";