From e7f54823b1f8443f616096bd100c337ab6bbfd46 Mon Sep 17 00:00:00 2001 From: Jocelyn Thode Date: Sun, 12 Mar 2023 20:54:23 +0100 Subject: readarr: init at 0.1.4.1596 --- pkgs/servers/readarr/default.nix | 53 ++++++++++++++++++++++++++++++++++++++++ pkgs/servers/readarr/update.sh | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 pkgs/servers/readarr/default.nix create mode 100755 pkgs/servers/readarr/update.sh (limited to 'pkgs/servers/readarr') diff --git a/pkgs/servers/readarr/default.nix b/pkgs/servers/readarr/default.nix new file mode 100644 index 0000000000000..9fdec49888910 --- /dev/null +++ b/pkgs/servers/readarr/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, libmediainfo, sqlite, curl, makeWrapper, icu, dotnet-runtime, openssl, nixosTests }: + +let + os = if stdenv.isDarwin then "osx" else "linux"; + arch = { + x86_64-linux = "x64"; + aarch64-linux = "arm64"; + x86_64-darwin = "x64"; + }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + hash = { + x64-linux_hash = "sha256-ABk2wxNse8dcFWEMpaXnsALz171/1JQaAFzmpz36we0="; + arm64-linux_hash = "sha256-c1eVCPE8RH9u99hYJZBiNBpanBv3WeSTVaD+Gq1yxUk="; + x64-osx_hash = "sha256-9UEi8YbpZ1baZ9lnG7SJcYnvJRgP7BsqcIt9Z3UdDv8="; + }."${arch}-${os}_hash"; +in stdenv.mkDerivation rec { + pname = "readarr"; + version = "0.1.4.1596"; + + src = fetchurl { + url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz"; + sha256 = hash; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,share/${pname}-${version}} + cp -r * $out/share/${pname}-${version}/. + makeWrapper "${dotnet-runtime}/bin/dotnet" $out/bin/Readarr \ + --add-flags "$out/share/${pname}-${version}/Readarr.dll" \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ curl sqlite libmediainfo icu openssl ]} + + runHook postInstall + ''; + + + passthru = { + updateScript = ./update.sh; + tests.smoke-test = nixosTests.readarr; + }; + + meta = with lib; { + description = "A Usenet/BitTorrent ebook downloader"; + homepage = "https://readarr.com"; + license = licenses.gpl3; + maintainers = [ maintainers.jocelynthode ]; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + }; +} + diff --git a/pkgs/servers/readarr/update.sh b/pkgs/servers/readarr/update.sh new file mode 100755 index 0000000000000..0372ac9fa1a4e --- /dev/null +++ b/pkgs/servers/readarr/update.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused nix-prefetch jq + +set -e + +dirname="$(dirname "$0")" + +updateHash() +{ + version=$1 + arch=$2 + os=$3 + + hashKey="${arch}-${os}_hash" + + url="https://github.com/Readarr/Readarr/releases/download/v$version/Readarr.develop.$version.$os-core-$arch.tar.gz" + hash=$(nix-prefetch-url --type sha256 $url) + sriHash="$(nix hash to-sri --type sha256 $hash)" + + sed -i "s|$hashKey = \"[a-zA-Z0-9\/+-=]*\";|$hashKey = \"$sriHash\";|g" "$dirname/default.nix" +} + +updateVersion() +{ + sed -i "s/version = \"[0-9.]*\";/version = \"$1\";/g" "$dirname/default.nix" +} + +currentVersion=$(cd $dirname && nix eval --raw -f ../../.. readarr.version) + +# We cannot use the latest releases as in the past Readarr released old version with v2.0 and then went back to 0.1 +latestTag=$(curl https://api.github.com/repos/Readarr/Readarr/releases | jq -r ".[0].tag_name") +latestVersion="$(expr $latestTag : 'v\(.*\)')" + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "Readarr is up-to-date: ${currentVersion}" + exit 0 +fi + +updateVersion $latestVersion + +updateHash $latestVersion x64 linux +updateHash $latestVersion arm64 linux +updateHash $latestVersion x64 osx + -- cgit 1.4.1