diff --git a/pkgs/default.nix b/pkgs/default.nix index dee7e08..b0ce7cf 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,5 @@ { pkgs }: -{ +rec { havm = pkgs.callPackage ./havm { }; lohr = pkgs.callPackage ./lohr { }; @@ -8,5 +8,9 @@ podgrab = pkgs.callPackage ./podgrab { }; + unbound-zones-adblock = pkgs.callPackage ./unbound-zones-adblock { + inherit unified-hosts-lists; + }; + unified-hosts-lists = pkgs.callPackage ./unified-hosts-lists { }; } diff --git a/pkgs/unbound-zones-adblock/default.nix b/pkgs/unbound-zones-adblock/default.nix new file mode 100644 index 0000000..c4309bd --- /dev/null +++ b/pkgs/unbound-zones-adblock/default.nix @@ -0,0 +1,37 @@ +{ fetchFromGitHub, gawk, lib, stdenvNoCC, unified-hosts-lists }: +stdenvNoCC.mkDerivation rec { + name = "unbound-zones-adblock"; + version = unified-hosts-lists.version; + + src = unified-hosts-lists; + + phases = [ "installPhase" ]; + + installPhase = + let + gawkCmd = lib.concatStringsSep " " [ + ''${gawk}/bin/awk'' + '''{sub(/\r$/,"")}'' + ''{sub(/^127\.0\.0\.1/,"0.0.0.0")}'' + ''BEGIN { OFS = "" }'' + ''NF == 2 && $1 == "0.0.0.0" { print "local-zone: \"", $2, "\" static"}' '' + ]; + in + '' + mkdir -p $out + for file in $src/*; do + ${gawkCmd} $file | tr '[:upper:]' '[:lower:]' | sort -u > $out/$(basename $file) + done + ''; + + meta = with lib; { + description = "Unified host lists, ready to be used by unbound"; + longDescription = '' + This is a simple derivation based on StevenBlack's unified hosts list. + The files have been modified for easy use wih unbound. + ''; + homepage = "https://github.com/StevenBlack/hosts"; + license = licenses.mit; + platforms = platforms.all; + }; +}