From c00a9089374d41bb6f04c856ef05a9cdd37b2bff Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sun, 11 May 2025 00:48:49 +0900 Subject: [PATCH] shogihome: refine updateScript to support electron version --- pkgs/by-name/sh/shogihome/package.nix | 34 +++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/sh/shogihome/package.nix b/pkgs/by-name/sh/shogihome/package.nix index 3e67d315d25f..d891b32ed12f 100644 --- a/pkgs/by-name/sh/shogihome/package.nix +++ b/pkgs/by-name/sh/shogihome/package.nix @@ -11,6 +11,11 @@ copyDesktopItems, commandLineArgs ? [ ], nix-update-script, + _experimental-update-script-combinators, + writeShellApplication, + nix, + jq, + gnugrep, }: let @@ -124,11 +129,30 @@ buildNpmPackage (finalAttrs: { ]; passthru = { - updateScript = nix-update-script { - extraArgs = [ - "--version-regex=^v([\\d\\.]+)$" - ]; - }; + updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { + extraArgs = [ + "--version-regex=^v([\\d\\.]+)$" + ]; + }) + (lib.getExe (writeShellApplication { + name = "${finalAttrs.pname}-electron-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)" + sed -i -E "s/electron_[0-9]+/electron_$new_electron_major/g" "$PKG_FILE" + ''; + })) + ]; }; meta = {