summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorNick Novitski <nicknovitski@gmail.com>2017-03-10 15:42:29 +1300
committerNick Novitski <nicknovitski@gmail.com>2017-03-17 22:07:15 +1300
commita3620396fd4ee36b212ac2d2be4864ade4a75d3d (patch)
tree66aae6fa41946eab6900b942dd972996e9efb373 /pkgs/tools
parent1fb21ca25c21a5ae8a81d4b302781f0f82fc3370 (diff)
downloadnixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar.gz
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar.bz2
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar.lz
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar.xz
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.tar.zst
nixpkgs-a3620396fd4ee36b212ac2d2be4864ade4a75d3d.zip
hostsblock: init at 20161213
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/misc/hostsblock/default.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/tools/misc/hostsblock/default.nix b/pkgs/tools/misc/hostsblock/default.nix
new file mode 100644
index 00000000000..b6b2bc9a25c
--- /dev/null
+++ b/pkgs/tools/misc/hostsblock/default.nix
@@ -0,0 +1,73 @@
+{ lib, coreutils, curl, fetchFromGitHub, unzip, p7zip, gnused, gnugrep, stdenv
+, blacklist ? [ "adwords.google.com" ]
+, whitelist ? [
+  ".dropbox.com"
+  " www.malwaredomainlists.com"
+  " www.arcamax.com"
+  " www.instructables.com"
+  " goo.gl"
+  " www.reddit.com"
+  " t.co"
+  " bit.ly"
+  " www.viddler.com"
+  " viddler.com"
+  " tinyurl.com"
+  " ompldr.org"
+  " www.ompldr.org"
+  "login.yahoo.com"
+  " l.yimg.com"
+  ".bp.blogspot.com"
+] }:
+
+stdenv.mkDerivation rec {
+  name = "hostsblock-${version}";
+  version = "20161213";
+
+  src = fetchFromGitHub {
+    owner = "gaenserich";
+    repo = "hostsblock";
+    rev = "91cacbdfbfb5e7ae9ba3babf8de41e135270c310";
+    sha256 = "1w91fbgf8v2nn0a6m8l6kd455km2j1lvpvqil4yxhrg018aigax0";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm744 src/hostsblock.sh $out/bin/hostsblock
+    install -Dm744 src/hostsblock-urlcheck.sh $out/bin/hostsblock-urlcheck
+
+    mkdir -p $out/lib
+    install -Dm644 src/hostsblock-common.sh $out/lib/
+
+    mkdir -p $out/etc
+    install -Dm644 conf/hostsblock.conf $out/etc/
+    ${lib.concatMapStrings (d: "echo ${d} >> $out/etc/black.list\n") blacklist}
+    ${lib.concatMapStrings (d: "echo ${d} >> $out/etc/white.list\n") whitelist}
+    install -Dm644 conf/hosts.head $out/etc/
+
+    for f in $out/bin/* $out/lib/* $out/etc/hostsblock.conf; do
+      substituteInPlace $f --replace "/dev/shm" "/tmp"
+      substituteInPlace $f --replace "/usr/lib/" "$out/lib/"
+      substituteInPlace $f --replace "/etc/hostsblock/" "$out/etc/"
+      sed --in-place --regexp-extended "s|([\` ])curl |\1${curl}/bin/curl |g" $f
+      substituteInPlace $f --replace grep ${gnugrep}/bin/grep
+      substituteInPlace $f --replace " sed " " ${gnused}/bin/sed "
+      sed --in-place --regexp-extended "s|([^_])unzip |\1${unzip}/bin/unzip |" $f
+      sed --in-place --regexp-extended "s|7za([^,])|${p7zip}/bin/7za\1|g" $f
+    done
+
+    echo "postprocess(){ ${coreutils}/bin/true; }" >> $out/etc/hostsblock.conf
+
+    mkdir -p $out/share/dbus-1/system-services
+    install -Dm644 systemd/hostsblock.service $out/share/dbus-1/system-services
+    install -Dm644 systemd/hostsblock.timer $out/share/dbus-1/system-services
+  '';
+
+  meta = with lib; {
+    description = "An ad- and malware-blocking script for Linux";
+    website = http://gaenserich.github.io/hostsblock/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.nicknovitski ];
+    platforms = platforms.unix;
+  };
+
+}