diff --git a/pkgs/by-name/le/legends-of-equestria/package.nix b/pkgs/by-name/le/legends-of-equestria/package.nix index 12107ca9a2f6..0fbd11cb3700 100644 --- a/pkgs/by-name/le/legends-of-equestria/package.nix +++ b/pkgs/by-name/le/legends-of-equestria/package.nix @@ -33,21 +33,21 @@ let pname = "legends-of-equestria"; - version = "2025.02.001"; + version = "2025.04.001"; description = "Free-to-play MMORPG"; srcOptions = { x86_64-linux = { - url = "https://mega.nz/file/w6pxUQJS#5r_oxsCqLyIUya8fbIATPtKAbsacXkD-bVArjjOBu3w"; - outputHash = "k5kASgZwCoKVtHDEFjegAl31KZlrkNse4Baph1l/SUc="; + url = "https://mega.nz/file/w7BQTCAD#zW1atRLzSd1-V8GV7s7yj_HVZwB4v8zuX3aWIjA0ztc"; + outputHash = "YYPxS/qNl/DvNmiGZorRGoONbtAI3nJslqCRzctwoz8="; }; x86_64-darwin = { - url = "https://mega.nz/file/wyoHSZTK#ig1laiSWijTxnN_tS2m5di1Mdly8zDHP1euLVFqG_ug"; - outputHash = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; + url = "https://mega.nz/file/IqgBEJTD#aUd6LgigncoQ8o3owSkadYRp7GkfIOWl4B1Hwzti1qk"; + outputHash = "XdcHM6zCDNFU5VJo3/QISuhtYnBKm1f6IEDfy6Fjnp8="; }; aarch64-darwin = { - url = "https://mega.nz/file/EihRWKgb#KDtmmzLWVKW5uxkKkBEVE0yJioYPkOqutWwwMLhbedA"; - outputHash = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; + url = "https://mega.nz/file/QyZnkYYB#EtAZrVdHgqX10ag09M9nhJVEboG0J_5f_nVKxCHskYg"; + outputHash = "GA0Zin+vlgYfBFC1ZbkkgX1eSn/NVBYuxuv8fayXMLU="; }; }; diff --git a/pkgs/by-name/le/legends-of-equestria/update.sh b/pkgs/by-name/le/legends-of-equestria/update.sh index bcac4dbbd00b..1035b733a8da 100755 --- a/pkgs/by-name/le/legends-of-equestria/update.sh +++ b/pkgs/by-name/le/legends-of-equestria/update.sh @@ -4,8 +4,9 @@ set -eu -o pipefail ATTR=legends-of-equestria -DOWNLOADS_PAGE=https://www.legendsofequestria.com/downloads -OLD_VERSION=$(nix-instantiate --eval -A $ATTR.version | tr -d '"') +DOWNLOADS_PAGE="$(curl -s "$(nix-instantiate --eval -A "$ATTR.meta.downloadPage" | tr -d '"')")" +OLD_VERSION="$(nix-instantiate --eval -A "$ATTR.version" | tr -d '"')" +NIX_FILE="$(nix-instantiate --eval -A "$ATTR.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')" TMP=$(mktemp -d) findHash() { @@ -30,24 +31,32 @@ applyUpdate() { system=$1 echo "checking for updates for $system..." >&2 systemText="$2" - regex=''"$systemText"'.+v(([0-9]+\.)+[0-9]+)' + regex=''"$systemText"'.+v(([0-9]+\.)+[0-9]+)' - if [[ "$(curl -s $DOWNLOADS_PAGE | grep -Fi "$systemText")" =~ $regex ]]; then + mapfile -t matches < <(echo "$DOWNLOADS_PAGE" | grep -Fi "$systemText") + for ((i=${#matches[@]}-1; i>=0; i--)); do + if [[ ${matches[i]} =~ $regex ]]; then url="${BASH_REMATCH[1]}" version="${BASH_REMATCH[2]}" echo "$version $url" >&2 - else + break + fi + done + if [[ -z $url || -z $version ]]; then echo "cannot find the latest version for $system" >&2 exit 1 fi if [[ $OLD_VERSION == $version ]]; then echo "already up-to-date at version $version" >&2 - exit 1 + exit 0 fi hash="$(findHash $system "$url" | sed -E 's/sha256-(.+)/\1/')" echo "output hash: $hash" >&2 - update-source-version $ATTR $version "$hash" "$url" --system=$system --ignore-same-version --ignore-same-hash + + oldUrl="$(nix-instantiate --system $system --eval -A $ATTR.src.url | tr -d '"')" + oldHash="$(nix-instantiate --system $system --eval -A $ATTR.src.outputHash | tr -d '"')" + sed -i "s|$OLD_VERSION|$version|; s|$oldUrl|$url|; s|$oldHash|$hash|" "$NIX_FILE" } applyUpdate x86_64-linux Linux