diff --git a/pkgs/by-name/te/texlyre/package.nix b/pkgs/by-name/te/texlyre/package.nix index 19a77b0f8cfe..988c29c8cbd2 100644 --- a/pkgs/by-name/te/texlyre/package.nix +++ b/pkgs/by-name/te/texlyre/package.nix @@ -3,6 +3,7 @@ xsel, serve, fetchzip, + stdenvNoCC, makeWrapper, buildNpmPackage, fetchFromGitHub, @@ -67,15 +68,31 @@ buildNpmPackage (finalAttrs: { ''; passthru = { - drawioEmbed = fetchzip { - url = "https://github.com/TeXlyre/drawio-embed-mirror/archive/refs/tags/v29.7.9.zip"; - hash = "sha256-mj+i+6n14Koo9TYaygrCgFg0OLfBZnnL6rE3PkJGa9w="; - }; - busytexAssets = fetchzip { - url = "https://github.com/TeXlyre/texlyre-busytex/releases/download/assets-v1.1.1/busytex-assets.tar.gz"; - hash = "sha256-CLhLYLNXsJflX6o642EEJu+hxwoy3zkzfAOShiZGVPg="; - stripRoot = false; - }; + updateScript = ./update.sh; + drawioEmbed = stdenvNoCC.mkDerivation (finalAttrs: { + pname = "drawio-embed"; + version = "29.7.9"; + src = fetchFromGitHub { + owner = "TeXlyre"; + repo = "drawio-embed-mirror"; + tag = "v${finalAttrs.version}"; + hash = "sha256-mj+i+6n14Koo9TYaygrCgFg0OLfBZnnL6rE3PkJGa9w="; + }; + dontBuild = true; + installPhase = "cp -a . $out"; + }); + busytexAssets = stdenvNoCC.mkDerivation (finalAttrs: { + pname = "busytex-assets"; + version = "1.1.1"; + src = fetchFromGitHub { + owner = "TeXlyre"; + repo = "texlyre-busytex"; + tag = "assets-v${finalAttrs.version}"; + hash = "sha256-vlLoJw5EX6x3nTQvBC8hntDa5QKtY46eJSxJLJzs4EE="; + }; + dontBuild = true; + installPhase = "cp -a . $out"; + }); }; meta = { diff --git a/pkgs/by-name/te/texlyre/update.sh b/pkgs/by-name/te/texlyre/update.sh new file mode 100755 index 000000000000..047ce9fde425 --- /dev/null +++ b/pkgs/by-name/te/texlyre/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix-update jq gitMinimal + +set -euo pipefail + +nix-update texlyre + +PKG_DIR=$(realpath "$(dirname "$0")") +NIXPKGS_ROOT="$(git rev-parse --show-toplevel)" +SRC_DIR=$(nix-build -E "(import \"$NIXPKGS_ROOT\" {}).texlyre.src" --no-out-link) +ASSETS_SCRIPT="$SRC_DIR/scripts/download-core-assets.cjs" + +DRAWIO_VERSION=$(grep -A 2 "name: 'drawio-embed'" "$ASSETS_SCRIPT" | grep "version:" | cut -d "'" -f 2 | sed 's/^v//') +BUSYTEX_VERSION=$(grep -A 2 "name: 'texlyre-busytex'" "$ASSETS_SCRIPT" | grep "version:" | cut -d "'" -f 2 | sed 's/^v//') + +echo "Updating: drawio-embed=$DRAWIO_VERSION, busytex=$BUSYTEX_VERSION" + +nix-update texlyre.passthru.drawioEmbed --version "$DRAWIO_VERSION" +nix-update texlyre.passthru.busytexAssets --version "$BUSYTEX_VERSION"