audiobookshelf: 2.26.3 -> 2.27.0 (#430905)

authored by Adam C. Stephens and committed by GitHub a13358f7 f9387c45

+54 -46
+12 -7
pkgs/by-name/au/audiobookshelf/package.nix
··· 14 14 }: 15 15 16 16 let 17 - source = builtins.fromJSON (builtins.readFile ./source.json); 18 - pname = "audiobookshelf"; 17 + source = { 18 + version = "2.27.0"; 19 + hash = "sha256-FKWK/yYMNBrGgfWtdUC9DpQ2y8mBn3/5G+buQNzzot4="; 20 + npmDepsHash = "sha256-FpRO7lhgQNZ5wHQwHFIxkrYfmivgTopXKFcrQ48B20w="; 21 + clientNpmDepsHash = "sha256-GHN49bo7m9pzvwNvkVtA0cwTv+rWSAKpBHG7jqXm/vo="; 22 + }; 19 23 20 24 src = fetchFromGitHub { 21 25 owner = "advplyr"; ··· 37 41 NODE_OPTIONS = "--openssl-legacy-provider"; 38 42 39 43 npmBuildScript = "generate"; 40 - npmDepsHash = source.clientDepsHash; 44 + npmDepsHash = source.clientNpmDepsHash; 41 45 }; 42 46 43 47 wrapper = import ./wrapper.nix { ··· 51 55 52 56 in 53 57 buildNpmPackage { 54 - inherit pname src; 55 - inherit (source) version; 58 + pname = "audiobookshelf"; 59 + 60 + inherit src; 61 + inherit (source) npmDepsHash version; 56 62 57 63 buildInputs = [ util-linux ]; 58 64 nativeBuildInputs = [ python3 ]; 59 65 60 66 dontNpmBuild = true; 61 67 npmInstallFlags = [ "--only-production" ]; 62 - npmDepsHash = source.depsHash; 63 68 64 69 installPhase = '' 65 70 mkdir -p $out/opt/client ··· 75 80 76 81 passthru = { 77 82 tests.basic = nixosTests.audiobookshelf; 78 - updateScript = ./update.nu; 83 + updateScript = ./update.sh; 79 84 }; 80 85 81 86 meta = {
-9
pkgs/by-name/au/audiobookshelf/source.json
··· 1 - { 2 - "owner": "advplyr", 3 - "repo": "audiobookshelf", 4 - "rev": "a7a3a565098791a8157ed54b46b5258bb97c141d", 5 - "hash": "sha256-AnPHwb3ad6TvgQ9DJdOYwQ+RwE5+iMA7tDAPnviQ9YM=", 6 - "version": "2.26.3", 7 - "depsHash": "sha256-+UbOYtS0lumYajQklm0izgW6oNb0QcxvDKYtRSFICj8=", 8 - "clientDepsHash": "sha256-5BHutO2aCvVWvN/LySMtgPPl9HQLsu8Tjj/k7FIiAr8=" 9 - }
-30
pkgs/by-name/au/audiobookshelf/update.nu
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i nu -p nushell common-updater-scripts prefetch-npm-deps nix-prefetch-github 3 - 4 - def main [] { 5 - let sourceFile = $"(pwd)/pkgs/by-name/au/audiobookshelf/source.json" 6 - let tags = list-git-tags --url=https://github.com/advplyr/audiobookshelf | lines | sort --natural | str replace v '' 7 - 8 - let latest_tag = $tags | last 9 - let current_version = open $sourceFile | get version 10 - 11 - if $latest_tag != $current_version { 12 - let source = nix-prefetch-github advplyr audiobookshelf --rev $"v($latest_tag)" | from json | merge { version: $latest_tag, depsHash: "", clientDepsHash: ""} 13 - $source | save --force $sourceFile 14 - 15 - let srcPath = nix-build $env.PWD -A audiobookshelf.src | complete | get stdout | lines | first 16 - 17 - print $srcPath 18 - ls $srcPath 19 - 20 - $source | merge { 21 - depsHash: (prefetch-npm-deps $"($srcPath)/package-lock.json"), 22 - clientDepsHash: (prefetch-npm-deps $"($srcPath)/client/package-lock.json") 23 - } | save --force $sourceFile 24 - 25 - # appease the editorconfig CI check 26 - echo "\n" | save --append $sourceFile 27 - } 28 - 29 - {before: $current_version, after: $latest_tag} 30 - }
+42
pkgs/by-name/au/audiobookshelf/update.sh
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p curl gnused gawk nix-prefetch common-updater-scripts jq prefetch-npm-deps 3 + 4 + set -euo pipefail 5 + 6 + ROOT="$(dirname "$(readlink -f "$0")")" 7 + NIX_DRV="$ROOT/package.nix" 8 + if [ ! -f "$NIX_DRV" ]; then 9 + echo "ERROR: cannot find package.nix in $ROOT" 10 + exit 1 11 + fi 12 + 13 + REPO="advplyr/audiobookshelf" 14 + 15 + NEW_VER=$(list-git-tags --url=https://github.com/$REPO | rg 'v[0-9\.]*$' | sed -e 's/^v//' | sort -V | tail -n 1) 16 + OLD_VER=$(nix-instantiate --eval -A audiobookshelf.version | jq --exit-status --raw-output) 17 + 18 + if [ "$NEW_VER" == "$OLD_VER" ]; then 19 + echo "No update needed." 20 + exit 0 21 + fi 22 + 23 + replace_hash() { 24 + sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV" 25 + } 26 + 27 + get_npm_hash() { 28 + pushd "$(mktemp -d)" >/dev/null 29 + curl -s "https://raw.githubusercontent.com/$REPO/v$NEW_VER/$1" -o package-lock.json 30 + prefetch-npm-deps package-lock.json 31 + rm -f package-lock.json 32 + popd >/dev/null 33 + } 34 + 35 + src_hash() { 36 + nix-prefetch-git --url https://github.com/$REPO --rev "refs/tags/v${NEW_VER}" | jq --exit-status --raw-output .hash 37 + } 38 + 39 + sed -i "s/version = \".*\"/version = \"$NEW_VER\"/" "$NIX_DRV" 40 + replace_hash "hash" "$(src_hash)" 41 + replace_hash "npmDepsHash" "$(get_npm_hash "package-lock.json")" 42 + replace_hash "clientNpmDepsHash" "$(get_npm_hash "client/package-lock.json")"