Skip to content

Commit

Permalink
sabnzbd: override sabctools version and add updateScript
Browse files Browse the repository at this point in the history
  • Loading branch information
adamcstephens committed Jul 12, 2024
1 parent aaa57ba commit 1eefa87
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 4 deletions.
19 changes: 16 additions & 3 deletions pkgs/by-name/sa/sabnzbd/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
stdenv,
coreutils,
fetchFromGitHub,
fetchPypi,
python3,
par2cmdline-turbo,
unzip,
Expand All @@ -14,6 +15,9 @@
}:

let
sabctoolsVersion = "8.2.0";
sabctoolsHash = "sha256-dOMNZoKWQxHJt6yHiNKVtpnYvLJkK8nktOm+djsSTcM=";

pythonEnv = python3.withPackages (
ps: with ps; [
apprise
Expand Down Expand Up @@ -42,7 +46,15 @@ let
python-dateutil
pytz
rebulk
sabctools
# sabnzbd requires a specific version of sabctools
(sabctools.overridePythonAttrs (old: {
version = sabctoolsVersion;
src = fetchPypi {
pname = "sabctools";
version = sabctoolsVersion;
hash = sabctoolsHash;
};
}))
sabyenc3
sgmllib3k
six
Expand Down Expand Up @@ -86,8 +98,9 @@ stdenv.mkDerivation rec {
runHook postInstall
'';

passthru.tests = {
smoke-test = nixosTests.sabnzbd;
passthru = {
tests.smoke-test = nixosTests.sabnzbd;
updateScript = ./update.sh;
};

meta = with lib; {
Expand Down
23 changes: 23 additions & 0 deletions pkgs/by-name/sa/sabnzbd/update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix common-updater-scripts gnugrep gnused nurl

# shellcheck shell=bash

set -euo pipefail

latestVersion=$(list-git-tags --url=https://github.com/sabnzbd/sabnzbd | grep -E '^[0-9.]+$' | sort --reverse --numeric-sort | head -n 1)
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; sabnzbd.version or (lib.getVersion sabnzbd)" | tr -d '"')

if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "sabnzbd already latest version $latestVersion"
exit 0
fi

echo "sabnzbd updating $currentVersion -> $latestVersion"
update-source-version sabnzbd "$latestVersion"

sabctoolsVersion=$(curl -s "https://raw.githubusercontent.com/sabnzbd/sabnzbd/$latestVersion/requirements.txt" | grep sabctools | cut -f 3 -d =)
sabctoolsHash=$(nurl --hash https://pypi.org/project/sabctools "$sabctoolsVersion")

sed -i -E -e "s#sabctoolsVersion = \".*\"#sabctoolsVersion = \"$sabctoolsVersion\"#" ./pkgs/by-name/sa/sabnzbd/package.nix
sed -i -E -e "s#sabctoolsHash = \".*\"#sabctoolsHash = \"$sabctoolsHash\"#" ./pkgs/by-name/sa/sabnzbd/package.nix
2 changes: 1 addition & 1 deletion pkgs/development/python-modules/sabctools/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
}:
buildPythonPackage rec {
pname = "sabctools";
version = "8.2.3"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3
version = "8.2.3";
pyproject = true;

src = fetchPypi {
Expand Down

0 comments on commit 1eefa87

Please sign in to comment.