nixos/services.nylon: remove with lib;

This commit is contained in:
Felix Buehler 2024-08-30 00:47:09 +02:00
parent 2bf4393a9b
commit 2d4a4c110a

View File

@ -1,7 +1,4 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.nylon;
@ -18,78 +15,78 @@ let
Binding-Interface=${cfg.acceptInterface}
Connecting-Interface=${cfg.bindInterface}
Port=${toString cfg.port}
Allow-IP=${concatStringsSep " " cfg.allowedIPRanges}
Deny-IP=${concatStringsSep " " cfg.deniedIPRanges}
Allow-IP=${lib.concatStringsSep " " cfg.allowedIPRanges}
Deny-IP=${lib.concatStringsSep " " cfg.deniedIPRanges}
'';
nylonOpts = { name, ... }: {
options = {
enable = mkOption {
type = types.bool;
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enables nylon as a running service upon activation.
'';
};
name = mkOption {
type = types.str;
name = lib.mkOption {
type = lib.types.str;
default = "";
description = "The name of this nylon instance.";
};
nrConnections = mkOption {
type = types.int;
nrConnections = lib.mkOption {
type = lib.types.int;
default = 10;
description = ''
The number of allowed simultaneous connections to the daemon, default 10.
'';
};
logging = mkOption {
type = types.bool;
logging = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable logging, default is no logging.
'';
};
verbosity = mkOption {
type = types.bool;
verbosity = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enable verbose output, default is to not be verbose.
'';
};
acceptInterface = mkOption {
type = types.str;
acceptInterface = lib.mkOption {
type = lib.types.str;
default = "lo";
description = ''
Tell nylon which interface to listen for client requests on, default is "lo".
'';
};
bindInterface = mkOption {
type = types.str;
bindInterface = lib.mkOption {
type = lib.types.str;
default = "enp3s0f0";
description = ''
Tell nylon which interface to use as an uplink, default is "enp3s0f0".
'';
};
port = mkOption {
type = types.port;
port = lib.mkOption {
type = lib.types.port;
default = 1080;
description = ''
What port to listen for client requests, default is 1080.
'';
};
allowedIPRanges = mkOption {
type = with types; listOf str;
allowedIPRanges = lib.mkOption {
type = with lib.types; listOf str;
default = [ "192.168.0.0/16" "127.0.0.1/8" "172.16.0.1/12" "10.0.0.0/8" ];
description = ''
Allowed client IP ranges are evaluated first, defaults to ARIN IPv4 private ranges:
@ -97,8 +94,8 @@ let
'';
};
deniedIPRanges = mkOption {
type = with types; listOf str;
deniedIPRanges = lib.mkOption {
type = with lib.types; listOf str;
default = [ "0.0.0.0/0" ];
description = ''
Denied client IP ranges, these gets evaluated after the allowed IP ranges, defaults to all IPv4 addresses:
@ -107,7 +104,7 @@ let
'';
};
};
config = { name = mkDefault name; };
config = { name = lib.mkDefault name; };
};
mkNamedNylon = cfg: {
@ -125,8 +122,8 @@ let
};
};
anyNylons = collect (p: p ? enable) cfg;
enabledNylons = filter (p: p.enable == true) anyNylons;
anyNylons = lib.collect (p: p ? enable) cfg;
enabledNylons = lib.filter (p: p.enable == true) anyNylons;
nylonUnits = map (nylon: mkNamedNylon nylon) enabledNylons;
in
@ -137,10 +134,10 @@ in
options = {
services.nylon = mkOption {
services.nylon = lib.mkOption {
default = {};
description = "Collection of named nylon instances";
type = with types; attrsOf (submodule nylonOpts);
type = with lib.types; attrsOf (submodule nylonOpts);
internal = true;
};
@ -148,7 +145,7 @@ in
###### implementation
config = mkIf (length(enabledNylons) > 0) {
config = lib.mkIf (lib.length(enabledNylons) > 0) {
users.users.nylon = {
group = "nylon";
@ -160,7 +157,7 @@ in
users.groups.nylon.gid = config.ids.gids.nylon;
systemd.services = foldr (a: b: a // b) {} nylonUnits;
systemd.services = lib.foldr (a: b: a // b) {} nylonUnits;
};
}