ecwolf: add passthru.updateScript

Before this change, nixpkgs-update had to rely on on Repology in order
to determine if there was an ECWolf update. When it comes to ECWolf
updates, Repology is a tertiary source of information. This change
allows nixpkgs-update (and any other tools) to use debian.drdteam.org to
determine if there is an ECWolf update. When it comes to ECWolf updates,
debian.drdteam.org is a primary source of information.
This commit is contained in:
Jason Yundt 2024-02-17 20:55:58 -05:00
parent 573cead3dd
commit 10ac919955

View File

@ -12,6 +12,9 @@
, SDL2_net , SDL2_net
, SDL2_mixer , SDL2_mixer
, gtk3 , gtk3
, writers
, python3Packages
, nix-update
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -41,6 +44,33 @@ stdenv.mkDerivation rec {
makeWrapper $out/{Applications/ecwolf.app/Contents/MacOS,bin}/ecwolf makeWrapper $out/{Applications/ecwolf.app/Contents/MacOS,bin}/ecwolf
''; '';
passthru.updateScript = let
updateScriptPkg = writers.writePython3 "ecwolf_update_script" {
libraries = with python3Packages; [ debian-inspector requests ];
} ''
from os import execl
from sys import argv
from debian_inspector.debcon import get_paragraphs_data
from requests import get
# The debian.drdteam.org repo is a primary source of information. Its
# run by Blzut3, the creator and primary developer of ECWolf. Its also
# listed on ECWolfs download page:
# <https://maniacsvault.net/ecwolf/download.php>.
url = 'https://debian.drdteam.org/dists/stable/multiverse/binary-amd64/Packages' # noqa: E501
response = get(url)
packages = get_paragraphs_data(response.text)
for package in packages:
if package['package'] == 'ecwolf':
latest_version = package['version']
break
nix_update_path = argv[1]
execl(nix_update_path, nix_update_path, '--version', latest_version)
'';
in [ updateScriptPkg (lib.getExe nix-update) ];
meta = with lib; { meta = with lib; {
description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms"; description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms";
homepage = "https://maniacsvault.net/ecwolf/"; homepage = "https://maniacsvault.net/ecwolf/";