diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/adguardhome/update.sh')
-rwxr-xr-x | nixpkgs/pkgs/servers/adguardhome/update.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/adguardhome/update.sh b/nixpkgs/pkgs/servers/adguardhome/update.sh new file mode 100755 index 000000000000..69f1d8e97fde --- /dev/null +++ b/nixpkgs/pkgs/servers/adguardhome/update.sh @@ -0,0 +1,38 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p curl gnugrep nix-prefetch jq + +# This file is based on /pkgs/servers/gotify/update.sh + +set -euo pipefail + +dirname="$(dirname "$0")" +bins="$dirname/bins.nix" + +latest_release=$(curl --silent https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest) +version=$(jq -r '.tag_name' <<<"$latest_release") + +echo "got version $version" + +declare -A systems +systems[linux_386]=i686-linux +systems[linux_amd64]=x86_64-linux +systems[linux_arm64]=aarch64-linux +systems[darwin_amd64]=x86_64-darwin + +echo '{ fetchurl, fetchzip }:' > "$bins" +echo '{' >> "$bins" + +for asset in $(curl --silent https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest | jq -c '.assets[]') ; do + url="$(jq -r '.browser_download_url' <<< "$asset")" + adg_system="$(grep -Eo '(darwin|linux)_(386|amd64|arm64)' <<< "$url" || true)" + if [ -n "$adg_system" ]; then + fetch="$(grep '\.zip$' <<< "$url" > /dev/null && echo fetchzip || echo fetchurl)" + nix_system=${systems[$adg_system]} + nix_src="$(nix-prefetch -s --output nix $fetch --url $url)" + echo "\"$nix_system\" = $fetch $nix_src;" >> $bins + fi +done + +echo '}' >> "$bins" + +sed -i -r -e "s/version\s*?=\s*?.*?;/version = \"${version#v}\";/" "$dirname/default.nix" |