diff --git a/pkgs/games/ecwolf/default.nix b/pkgs/games/ecwolf/default.nix index 77ccc9a929c3..bc9c216e7adc 100644 --- a/pkgs/games/ecwolf/default.nix +++ b/pkgs/games/ecwolf/default.nix @@ -11,6 +11,9 @@ , SDL2_net , SDL2_mixer , gtk3 +, writers +, python3Packages +, nix-update }: stdenv.mkDerivation rec { @@ -40,6 +43,33 @@ stdenv.mkDerivation rec { 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. It’s + # run by Blzut3, the creator and primary developer of ECWolf. It’s also + # listed on ECWolf’s download page: + # . + 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; { description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms"; mainProgram = "ecwolf";