From 10be0e70063ba83fef47295ebcbb1ac11a22c6b5 Mon Sep 17 00:00:00 2001
From: lassulus <lass@aidsballs.de>
Date: Wed, 21 Oct 2015 15:59:36 +0200
Subject: [PATCH] l 3: add dnsmasq.nix

---
 lass/3modules/dnsmasq.nix | 55 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 lass/3modules/dnsmasq.nix

diff --git a/lass/3modules/dnsmasq.nix b/lass/3modules/dnsmasq.nix
new file mode 100644
index 000000000..99c165479
--- /dev/null
+++ b/lass/3modules/dnsmasq.nix
@@ -0,0 +1,55 @@
+{ config, lib, pkgs, ... }:
+
+with builtins;
+with lib;
+
+let
+  cfg = config.lass.dnsmasq;
+
+  out = {
+    options.lass.dnsmasq = api;
+    config = mkIf cfg.enable imp;
+  };
+
+  api = {
+    enable = mkEnableOption "dnsmasq";
+    config = mkOption {
+      type = types.str;
+      #TODO: find a good default
+      default = ''
+      '';
+      description = "configuration dnsmasq is started with";
+    };
+  };
+
+  configFile = pkgs.writeText "dnsmasq.conf" cfg.config;
+
+  imp = {
+    #users.extraUsers.go = {
+    #  name = "go";
+    #  uid = 42774411; #genid go
+    #  description = "go url shortener user";
+    #  home = "/var/lib/go";
+    #  createHome = true;
+    #};
+
+    systemd.services.dnsmasq = {
+      description = "dnsmasq";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      path = with pkgs; [
+        dnsmasq
+      ];
+
+
+      restartIfChanged = true;
+
+      serviceConfig = {
+        Restart = "always";
+        ExecStart = "${pkgs.dnsmasq}/bin/dnsmasq -k -C ${configFile}";
+      };
+    };
+  };
+
+in out