about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/adguardhome/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/adguardhome/update.sh')
-rwxr-xr-xnixpkgs/pkgs/servers/adguardhome/update.sh38
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"