diff --git a/lib.nix b/lib.nix index 20302ee3..dfe91ed6 100644 --- a/lib.nix +++ b/lib.nix @@ -19,16 +19,21 @@ nibble0 = Str.index part 0; in nibble0 + UInt.toHexLower nibble1; - in trimAddress6 "${part0 (part 0)}${part 1}:${part 2}ff:fe${part 3}:${part 4}${part 5}"; + in + trimAddress6 "${part0 (part 0)}${part 1}:${part 2}ff:fe${part 3}:${part 4}${part 5}"; trimAddress6 = let matcher = match ''(^|.*:)(0+)([0-9a-fA-F].*)''; - in addr: let - matched = matcher addr; - prefix = elemAt matched 0; - postfix = elemAt matched 2; - addrReplaced = prefix + postfix; - in if matched == null then addr else trimAddress6 addrReplaced; + in + addr: let + matched = matcher addr; + prefix = elemAt matched 0; + postfix = elemAt matched 2; + addrReplaced = prefix + postfix; + in + if matched == null + then addr + else trimAddress6 addrReplaced; parseUrl = url: let parts' = Regex.match ''^([^:]+)://(\[[0-9a-fA-F:]+]|[^/:\[]+)(|:[0-9]+)(|/.*)$'' url; diff --git a/modules/extern/nixos/monitoring.nix b/modules/extern/nixos/monitoring.nix index f8e35a61..af44f6db 100644 --- a/modules/extern/nixos/monitoring.nix +++ b/modules/extern/nixos/monitoring.nix @@ -62,7 +62,7 @@ let in { enable = mkDefault true; port = mkDefault 9091; - extraFlags = [ "--collector.disable-defaults" ]; + extraFlags = ["--collector.disable-defaults"]; enabledCollectors = mkIf cfg.defaultCollectors (mkMerge [ [ "systemd" diff --git a/modules/nixos/adb.nix b/modules/nixos/adb.nix index ebbc2b07..22d25412 100644 --- a/modules/nixos/adb.nix +++ b/modules/nixos/adb.nix @@ -1,11 +1,17 @@ let - deviceModule = {config, lib, ...}: let + deviceModule = { + config, + lib, + ... + }: let inherit (lib.options) mkOption mkEnableOption; in { options = with lib.types; { - enable = mkEnableOption "adb device" // { - default = true; - }; + enable = + mkEnableOption "adb device" + // { + default = true; + }; uphold = mkOption { type = bool; default = true; @@ -15,123 +21,125 @@ let }; }; }; -in { - config, - gensokyo-zone, - utils, - pkgs, - lib, - ... -}: let - inherit (lib.options) mkOption mkPackageOption mkEnableOption; - inherit (lib.modules) mkIf mkMerge mkDefault mkOptionDefault; - inherit (lib.attrsets) filterAttrs mapAttrsToList; - inherit (lib.cli) toGNUCommandLine; - inherit (utils) escapeSystemdExecArgs escapeSystemdPath; - inherit (gensokyo-zone.lib) mapOptionDefaults; - cfg = config.services.adb; - enabledDevices = filterAttrs (_: device: device.enable) cfg.devices; -in { - options.services.adb = with lib.types; { - enable = mkEnableOption "adb server"; - package = mkPackageOption pkgs "android-tools" {}; - rulesPackage = mkPackageOption pkgs "android-udev-rules" {}; - user = mkOption { - type = str; - default = "adb"; +in + { + config, + gensokyo-zone, + utils, + pkgs, + lib, + ... + }: let + inherit (lib.options) mkOption mkPackageOption mkEnableOption; + inherit (lib.modules) mkIf mkMerge mkDefault mkOptionDefault; + inherit (lib.attrsets) filterAttrs mapAttrsToList; + inherit (lib.cli) toGNUCommandLine; + inherit (utils) escapeSystemdExecArgs escapeSystemdPath; + inherit (gensokyo-zone.lib) mapOptionDefaults; + cfg = config.services.adb; + enabledDevices = filterAttrs (_: device: device.enable) cfg.devices; + in { + options.services.adb = with lib.types; { + enable = mkEnableOption "adb server"; + package = mkPackageOption pkgs "android-tools" {}; + rulesPackage = mkPackageOption pkgs "android-udev-rules" {}; + user = mkOption { + type = str; + default = "adb"; + }; + port = mkOption { + type = port; + default = 5037; + }; + extraArguments = mkOption { + type = listOf str; + default = []; + }; + settings = mkOption { + type = attrsOf (oneOf [str int (nullOr bool)]); + }; + devices = mkOption { + type = attrsOf (submoduleWith { + modules = [deviceModule]; + specialArgs = { + inherit gensokyo-zone; + nixosConfig = config; + }; + }); + default = {}; + }; }; - port = mkOption { - type = port; - default = 5037; - }; - extraArguments = mkOption { - type = listOf str; - default = []; - }; - settings = mkOption { - type = attrsOf (oneOf [ str int (nullOr bool) ]); - }; - devices = mkOption { - type = attrsOf (submoduleWith { - modules = [deviceModule]; - specialArgs = { - inherit gensokyo-zone; - nixosConfig = config; + config = let + confService.services.adb = { + settings = mapOptionDefaults { + H = config.networking.hostName; + P = cfg.port; }; - }); - default = {}; - }; - }; - config = let - confService.services.adb = { - settings = mapOptionDefaults { - H = config.networking.hostName; - P = cfg.port; }; - }; - conf.services.udev.packages = [ cfg.rulesPackage ]; - conf.environment.systemPackages = [ cfg.package ]; - conf.users.groups.adbusers = {}; - conf.systemd.services.adb = { - upholds = let - upheldDevices = filterAttrs (_: device: device.uphold) enabledDevices; - in mapAttrsToList (_: device: "adb-device@${escapeSystemdPath device.serial}.service") upheldDevices; - after = ["network.target"]; - wantedBy = ["multi-user.target"]; - serviceConfig = { - Type = mkOptionDefault "forking"; - ExecStart = let - args = toGNUCommandLine { } cfg.settings ++ cfg.extraArguments; - in [ - "${cfg.package}/bin/adb start-server ${escapeSystemdExecArgs args}" - ]; - ExecStop = [ - "${cfg.package}/bin/adb kill-server" - ]; - WorkingDirectory = "/var/lib/adb"; - StateDirectory = "adb"; - RuntimeDirectory = "adb"; - User = cfg.user; + conf.services.udev.packages = [cfg.rulesPackage]; + conf.environment.systemPackages = [cfg.package]; + conf.users.groups.adbusers = {}; + conf.systemd.services.adb = { + upholds = let + upheldDevices = filterAttrs (_: device: device.uphold) enabledDevices; + in + mapAttrsToList (_: device: "adb-device@${escapeSystemdPath device.serial}.service") upheldDevices; + after = ["network.target"]; + wantedBy = ["multi-user.target"]; + serviceConfig = { + Type = mkOptionDefault "forking"; + ExecStart = let + args = toGNUCommandLine {} cfg.settings ++ cfg.extraArguments; + in [ + "${cfg.package}/bin/adb start-server ${escapeSystemdExecArgs args}" + ]; + ExecStop = [ + "${cfg.package}/bin/adb kill-server" + ]; + WorkingDirectory = "/var/lib/adb"; + StateDirectory = "adb"; + RuntimeDirectory = "adb"; + User = cfg.user; + }; }; - }; - conf.systemd.services."adb-device@" = rec { - requisite = [ "adb.service" ]; - partOf = requisite; - after = requisite; - environment = mapOptionDefaults { - ANDROID_SERIAL = "%I"; - }; - path = [cfg.package pkgs.coreutils]; - serviceConfig = mapOptionDefaults { - User = cfg.user; - }; - script = '' - set -eu + conf.systemd.services."adb-device@" = rec { + requisite = ["adb.service"]; + partOf = requisite; + after = requisite; + environment = mapOptionDefaults { + ANDROID_SERIAL = "%I"; + }; + path = [cfg.package pkgs.coreutils]; + serviceConfig = mapOptionDefaults { + User = cfg.user; + }; + script = '' + set -eu - while true; do - sleep 1 - DEVICE_ONLINE= - if ADB_STATE=$(adb get-state 2>/dev/null); then - if [[ $ADB_STATE == device ]]; then - DEVICE_ONLINE=1 + while true; do + sleep 1 + DEVICE_ONLINE= + if ADB_STATE=$(adb get-state 2>/dev/null); then + if [[ $ADB_STATE == device ]]; then + DEVICE_ONLINE=1 + fi fi - fi - if [[ -n $DEVICE_ONLINE ]] || timeout 5 adb connect $ANDROID_SERIAL; then - sleep 10 - else - sleep 4 - fi - done - ''; - }; - conf.users.users.adb = mkIf (cfg.user == "adb") { - isSystemUser = true; - group = mkDefault "adbusers"; - home = mkDefault "/var/lib/adb"; - }; - in - mkMerge [ - confService - (mkIf cfg.enable conf) - ]; -} + if [[ -n $DEVICE_ONLINE ]] || timeout 5 adb connect $ANDROID_SERIAL; then + sleep 10 + else + sleep 4 + fi + done + ''; + }; + conf.users.users.adb = mkIf (cfg.user == "adb") { + isSystemUser = true; + group = mkDefault "adbusers"; + home = mkDefault "/var/lib/adb"; + }; + in + mkMerge [ + confService + (mkIf cfg.enable conf) + ]; + } diff --git a/modules/nixos/monitoring/source/prometheus.nix b/modules/nixos/monitoring/source/prometheus.nix index a6373094..0dfef166 100644 --- a/modules/nixos/monitoring/source/prometheus.nix +++ b/modules/nixos/monitoring/source/prometheus.nix @@ -15,7 +15,7 @@ in { services.prometheus.exporters = { node = { port = 9091; - extraFlags = [ "--collector.disable-defaults" ]; + extraFlags = ["--collector.disable-defaults"]; enabledCollectors = mkMerge [ (mkIf config.boot.supportedFilesystems.xfs or false [ "xfs" diff --git a/modules/system/access.nix b/modules/system/access.nix index 6ffdb88a..a1fc0a02 100644 --- a/modules/system/access.nix +++ b/modules/system/access.nix @@ -295,14 +295,12 @@ in { hasService = system: system.exports.services.${service}.enable; notFound = throw "no system found serving ${service}"; multiple = throw "multiple systems found serving ${service}"; - in - (findSingle hasService notFound multiple (attrValues systems)); + in (findSingle hasService notFound multiple (attrValues systems)); systemForServiceId = serviceId: let hasService = system: findSingle (service: service.id == serviceId && service.enable) null multiple (attrValues system.exports.services) != null; notFound = throw "no system found serving ${serviceId}"; multiple = throw "multiple systems found serving ${serviceId}"; - in - (findSingle hasService notFound multiple (attrValues systems)); + in (findSingle hasService notFound multiple (attrValues systems)); }; }; } diff --git a/nixos/access/nfandroidtv.nix b/nixos/access/nfandroidtv.nix index 46015fc8..538f7ce7 100644 --- a/nixos/access/nfandroidtv.nix +++ b/nixos/access/nfandroidtv.nix @@ -18,10 +18,12 @@ in { settings.fail_timeout = mkDefault timeout; addr = mkDefault "10.1.1.67"; port = mkDefault nfandroidtv.ports.default.port; - /*accessService = { + /* + accessService = { system = "bedroomtv"; name = "nfandroidtv"; - };*/ + }; + */ }; fallback = let virtualHost = nginx.virtualHosts.nfandroidtv'fallback; @@ -70,7 +72,8 @@ in { config.networking.firewall.interfaces.lan = let virtualHost = nginx.virtualHosts.nfandroidtv'local; listen = virtualHost.listen'.nfandroidtv; - in mkIf (virtualHost.enable && listen.enable) { - allowedTCPPorts = [ listen.port ]; - }; + in + mkIf (virtualHost.enable && listen.enable) { + allowedTCPPorts = [listen.port]; + }; } diff --git a/nixos/adb.nix b/nixos/adb.nix index 946f8f4f..3bc09c77 100644 --- a/nixos/adb.nix +++ b/nixos/adb.nix @@ -17,10 +17,10 @@ in { }; systemd.services = mkIf cfg.enable { adb = { - environment.ADB_TRACE = mkDefault (toString [ "adb" ]); + environment.ADB_TRACE = mkDefault (toString ["adb"]); }; }; networking.firewall.interfaces.lan = mkIf (cfg.enable && cfg.settings.a or false == true) { - allowedTCPPorts = [ cfg.port ]; + allowedTCPPorts = [cfg.port]; }; }