diff --git a/pkgs/by-name/ya/yazi-unwrapped/package.nix b/pkgs/by-name/ya/yazi-unwrapped/package.nix index 10a7d2adaa7b..68b15123b946 100644 --- a/pkgs/by-name/ya/yazi-unwrapped/package.nix +++ b/pkgs/by-name/ya/yazi-unwrapped/package.nix @@ -7,8 +7,6 @@ stdenv, Foundation, rust-jemalloc-sys, - - nix-update-script, }: rustPlatform.buildRustPackage rec { @@ -49,7 +47,7 @@ rustPlatform.buildRustPackage rec { install -Dm444 assets/logo.png $out/share/pixmaps/yazi.png ''; - passthru.updateScript = nix-update-script { }; + passthru.updateScript.command = [ ./update.sh ]; meta = { description = "Blazing fast terminal file manager written in Rust, based on async I/O"; diff --git a/pkgs/by-name/ya/yazi-unwrapped/update.sh b/pkgs/by-name/ya/yazi-unwrapped/update.sh new file mode 100755 index 000000000000..e87b94dfc241 --- /dev/null +++ b/pkgs/by-name/ya/yazi-unwrapped/update.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash nix-update curl coreutils jq common-updater-scripts nix-prefetch + +set -eux + +NIXPKGS_DIR="$PWD" +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" + +# Get latest release +YAZI_RELEASE=$( + curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ + https://api.github.com/repos/sxyazi/yazi/releases/latest +) + +# Get release information +latestBuildDate=$(echo "$YAZI_RELEASE" | jq -r ".published_at") +latestVersion=$(echo "$YAZI_RELEASE" | jq -r ".tag_name") + +latestBuildDate="${latestBuildDate%T*}" # remove the timestamp and get the date +latestVersion="${latestVersion:1}" # remove first char 'v' + +oldVersion=$(nix eval --raw -f "$NIXPKGS_DIR" yazi-unwrapped.version) + +if [[ "$oldVersion" == "$latestVersion" ]]; then + echo "Yazi is up-to-date: ${oldVersion}" + exit 0 +fi + +echo "Updating Yazi" + +# Version +update-source-version yazi-unwrapped "${latestVersion}" + +pushd "$SCRIPT_DIR" +# Build date +sed -i 's#env.VERGEN_BUILD_DATE = "[^"]*"#env.VERGEN_BUILD_DATE = "'"${latestBuildDate}"'"#' package.nix + +# Hashes +cargoHash=$(nix-prefetch "{ sha256 }: (import $NIXPKGS_DIR {}).yazi-unwrapped.cargoDeps.overrideAttrs (_: { outputHash = sha256; })") +sed -i -E 's#\bcargoHash = ".*?"#cargoHash = "'"$cargoHash"'"#' package.nix +popd