about summary refs log tree commit diff
path: root/pkgs/servers/adguardhome
diff options
context:
space:
mode:
authorCarl Richard Theodor Schneider <dev.github@crtified.me>2022-06-07 13:35:22 +0200
committerCarl Richard Theodor Schneider <dev.github@crtified.me>2022-10-25 17:35:27 +0200
commit1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd (patch)
tree46777a52d8aa7886741e79823a7d7cc4e89d37de /pkgs/servers/adguardhome
parent8ee9c8d3ed07609f36f9ffb1b399caf926301c28 (diff)
downloadnixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar.gz
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar.bz2
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar.lz
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar.xz
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.tar.zst
nixlib-1526a1b04145ba66e10127c7d6f0ef1a3d30cfcd.zip
adguardhome: Add schema_version
This will add `passthru.schema_version` to be used as default value for
the adguardhome module.
It will also update the `update.sh` to keep the `schema_version` in sync
with the version by inspecting the sourcecode.

This might break existing configs, if they use deprecated values that don't
appear in newer schema_versions and schema_version wasn't set explicitly.
Explicit declarations of schema_version always have higher priority.

This also removes the `host` and `config` settings in favour of using the
appropriate `settings`.

Fixes #173938

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Diffstat (limited to 'pkgs/servers/adguardhome')
-rw-r--r--pkgs/servers/adguardhome/default.nix1
-rwxr-xr-xpkgs/servers/adguardhome/update.sh6
2 files changed, 7 insertions, 0 deletions
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 77531d4b28cb..2d2bafaa2048 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = ./update.sh;
+    schema_version = 14;
     tests.adguardhome = nixosTests.adguardhome;
   };
 
diff --git a/pkgs/servers/adguardhome/update.sh b/pkgs/servers/adguardhome/update.sh
index 5f436bb126db..8a72bd5a7c99 100755
--- a/pkgs/servers/adguardhome/update.sh
+++ b/pkgs/servers/adguardhome/update.sh
@@ -13,6 +13,11 @@ version=$(jq -r '.tag_name' <<<"$latest_release")
 
 echo "got version $version"
 
+schema_version=$(curl --silent "https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/${version}/internal/home/upgrade.go" \
+    | grep -Po '(?<=const currentSchemaVersion = )[[:digit:]]+$')
+
+echo "got schema_version $schema_version"
+
 declare -A systems
 systems[linux_386]=i686-linux
 systems[linux_amd64]=x86_64-linux
@@ -37,3 +42,4 @@ done
 echo '}' >> "$bins"
 
 sed -i -r -e "s/version\s*?=\s*?.*?;/version = \"${version#v}\";/" "$dirname/default.nix"
+sed -i -r -e "s/schema_version\s*?=\s*?.*?;/schema_version = ${schema_version};/" "$dirname/default.nix"