summaryrefslogtreecommitdiffstats
path: root/lass/3modules
diff options
context:
space:
mode:
Diffstat (limited to 'lass/3modules')
-rw-r--r--lass/3modules/default.nix2
-rw-r--r--lass/3modules/hass.nix34
-rw-r--r--lass/3modules/umts.nix112
-rw-r--r--lass/3modules/xjail.nix10
4 files changed, 40 insertions, 118 deletions
diff --git a/lass/3modules/default.nix b/lass/3modules/default.nix
index 90dcb9d9..f6179c39 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 00000000..30158e78
--- /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 20727844..00000000
--- 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 f6ce7ccc..37f90ee1 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 = [