diff options
Diffstat (limited to 'lass/3modules')
-rw-r--r-- | lass/3modules/default.nix | 2 | ||||
-rw-r--r-- | lass/3modules/hass.nix | 34 | ||||
-rw-r--r-- | lass/3modules/umts.nix | 112 | ||||
-rw-r--r-- | lass/3modules/xjail.nix | 10 |
4 files changed, 40 insertions, 118 deletions
diff --git a/lass/3modules/default.nix b/lass/3modules/default.nix index 90dcb9d9c..f6179c394 100644 --- a/lass/3modules/default.nix +++ b/lass/3modules/default.nix @@ -4,6 +4,7 @@ _: ./dnsmasq.nix ./ejabberd ./folderPerms.nix + ./hass.nix ./hosts.nix ./mysql-backup.nix ./news.nix @@ -11,7 +12,6 @@ _: ./pyload.nix ./restic.nix ./screenlock.nix - ./umts.nix ./usershadow.nix ./xjail.nix ./autowifi.nix diff --git a/lass/3modules/hass.nix b/lass/3modules/hass.nix new file mode 100644 index 000000000..30158e78a --- /dev/null +++ b/lass/3modules/hass.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: +with import <stockholm/lib>; +let + + cfg = config.lass.hass; + +in { + options.lass.hass = { + config = mkOption { + default = {}; + type = with lib.types; let + valueType = nullOr (oneOf [ + bool + int + float + str + (attrsOf valueType) + (listOf valueType) + ]) // { + description = "Yaml value"; + emptyValue.value = {}; + }; + in valueType; + }; + }; + + config = + assert versionOlder version "20.09"; + mkIf (cfg.config != {}) + { + services.home-assistant.config = cfg.config; + }; +} + diff --git a/lass/3modules/umts.nix b/lass/3modules/umts.nix deleted file mode 100644 index 207278440..000000000 --- a/lass/3modules/umts.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import <stockholm/lib>; - -let - cfg = config.lass.umts; - - out = { - options.lass.umts = api; - config = lib.mkIf cfg.enable imp; - }; - - api = { - enable = mkEnableOption "umts"; - modem = mkOption { - type = types.str; - default = "/dev/ttyUSB0"; - }; - initstrings = mkOption { - type = types.str; - default = '' - Init1 = ATZ - Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 - ''; - }; - username = mkOption { - type = types.str; - default = "default"; - }; - password = mkOption { - type = types.str; - default = "default"; - }; - pppDefaults = mkOption { - type = types.str; - default = '' - noipdefault - usepeerdns - defaultroute - persist - noauth - ''; - }; - }; - - nixpkgs-1509 = import (pkgs.fetchFromGitHub { - owner = "NixOS"; repo = "nixpkgs-channels"; - rev = "91371c2bb6e20fc0df7a812332d99c38b21a2bda"; - sha256 = "1as1i0j9d2n3iap9b471y4x01561r2s3vmjc5281qinirlr4al73"; - }) {}; - - wvdial = nixpkgs-1509.wvdial; # https://github.com/NixOS/nixpkgs/issues/16113 - - umts-bin = pkgs.writeScriptBin "umts" '' - #!/bin/sh - set -euf - systemctl start umts - trap "systemctl stop umts;trap - INT TERM EXIT;exit" INT TERM EXIT - echo nameserver 8.8.8.8 | tee -a /etc/resolv.conf - journalctl -xfu umts - ''; - - wvdial-defaults = '' - [Dialer Defaults] - Modem = ${cfg.modem} - ${cfg.initstrings} - Modem Type = Analog Modem - Baud = 460800 - phone= *99# - Username = ${cfg.username} - Password = ${cfg.password} - Stupid Mode = 1 - Idle Seconds = 0 - PPPD Path = ${pkgs.ppp}/bin/pppd - ''; - - imp = { - environment.shellAliases = { - umts = "sudo ${umts-bin}/bin/umts"; - }; - - environment.systemPackages = [ - pkgs.ppp - ]; - - security.sudo.extraConfig = '' - lass ALL= (root) NOPASSWD: ${umts-bin}/bin/umts - ''; - - environment.etc = [ - { - source = pkgs.writeText "wvdial.conf" wvdial-defaults; - target = "wvdial.conf"; - } - { - source = pkgs.writeText "wvdial" cfg.pppDefaults; - target = "ppp/peers/wvdial"; - } - ]; - - systemd.services.umts = { - description = "UMTS wvdial Service"; - serviceConfig = { - Type = "simple"; - Restart = "always"; - RestartSec = "10s"; - ExecStart = "${wvdial}/bin/wvdial -n"; - }; - }; - }; - -in out diff --git a/lass/3modules/xjail.nix b/lass/3modules/xjail.nix index f6ce7ccc9..37f90ee1c 100644 --- a/lass/3modules/xjail.nix +++ b/lass/3modules/xjail.nix @@ -6,11 +6,11 @@ with import <stockholm/lib>; type = types.attrsOf (types.submodule ({ config, ...}: { options = { name = mkOption { - type = types.string; + type = types.str; default = config._module.args.name; }; user = mkOption { - type = types.string; + type = types.str; default = config.name; }; groups = mkOption { @@ -18,11 +18,11 @@ with import <stockholm/lib>; default = []; }; from = mkOption { - type = types.string; + type = types.str; default = "lass"; }; display = mkOption { - type = types.string; + type = types.str; default = toString (genid_uint31 config._module.args.name); }; dpi = mkOption { @@ -47,7 +47,7 @@ with import <stockholm/lib>; }; wm = mkOption { #TODO find type - type = types.string; + type = types.str; default = "${pkgs.writeHaskellPackage "xephyrify-xmonad" { executables.xmonad = { extra-depends = [ |