pkgs: add unbound-zones-adblock

Unbound wants a configuration file that is not actually formatted like
StevenBlack's hosts files. This derivation fixes that.
This commit is contained in:
Bruno BELANYI 2021-04-21 21:12:33 +00:00
parent 20c20cef46
commit d10f0ed103
2 changed files with 42 additions and 1 deletions

View file

@ -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 { };
}

View file

@ -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;
};
}