nixos/services.nylon: remove with lib;
This commit is contained in:
parent
2bf4393a9b
commit
2d4a4c110a
@ -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;
|
||||
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user