summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/web-servers
diff options
context:
space:
mode:
authorPeder Bergebakken Sundt <pbsds@hotmail.com>2024-01-31 17:58:59 +0100
committerPeder Bergebakken Sundt <pbsds@hotmail.com>2024-01-31 17:58:59 +0100
commit0d13d2a90f21947ddc20c13c4b0a70d88c354b16 (patch)
tree819b06051b8ae48c63b52373b4a34b063e5f18fd /nixos/modules/services/web-servers
parent4c707039315ab2a276339f1ceb33dc1477f2d37f (diff)
nixos/ttyd: remove `with lib;`
Diffstat (limited to 'nixos/modules/services/web-servers')
-rw-r--r--nixos/modules/services/web-servers/ttyd.nix54
1 files changed, 30 insertions, 24 deletions
diff --git a/nixos/modules/services/web-servers/ttyd.nix b/nixos/modules/services/web-servers/ttyd.nix
index 9315890d5c8d..1b7db0faff9f 100644
--- a/nixos/modules/services/web-servers/ttyd.nix
+++ b/nixos/modules/services/web-servers/ttyd.nix
@@ -1,11 +1,17 @@
{ config, lib, pkgs, ... }:
-with lib;
-
let
cfg = config.services.ttyd;
+ inherit (lib)
+ optionals
+ types
+ concatLists
+ mapAttrsToList
+ mkOption
+ ;
+
# Command line arguments for the ttyd daemon
args = [ "--port" (toString cfg.port) ]
++ optionals (cfg.socket != null) [ "--interface" cfg.socket ]
@@ -31,39 +37,39 @@ in
options = {
services.ttyd = {
- enable = mkEnableOption (lib.mdDoc "ttyd daemon");
+ enable = lib.mkEnableOption ("ttyd daemon");
port = mkOption {
type = types.port;
default = 7681;
- description = lib.mdDoc "Port to listen on (use 0 for random port)";
+ description = "Port to listen on (use 0 for random port)";
};
socket = mkOption {
type = types.nullOr types.path;
default = null;
example = "/var/run/ttyd.sock";
- description = lib.mdDoc "UNIX domain socket path to bind.";
+ description = "UNIX domain socket path to bind.";
};
interface = mkOption {
type = types.nullOr types.str;
default = null;
example = "eth0";
- description = lib.mdDoc "Network interface to bind.";
+ description = "Network interface to bind.";
};
username = mkOption {
type = types.nullOr types.str;
default = null;
- description = lib.mdDoc "Username for basic authentication.";
+ description = "Username for basic authentication.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
apply = value: if value == null then null else toString value;
- description = lib.mdDoc ''
+ description = ''
File containing the password to use for basic authentication.
For insecurely putting the password in the globally readable store use
`pkgs.writeText "ttydpw" "MyPassword"`.
@@ -73,26 +79,26 @@ in
signal = mkOption {
type = types.ints.u8;
default = 1;
- description = lib.mdDoc "Signal to send to the command on session close.";
+ description = "Signal to send to the command on session close.";
};
writeable = mkOption {
type = types.nullOr types.bool;
default = null; # null causes an eval error, forcing the user to consider attack surface
example = true;
- description = lib.mdDoc "Allow clients to write to the TTY.";
+ description = "Allow clients to write to the TTY.";
};
clientOptions = mkOption {
type = types.attrsOf types.str;
default = {};
- example = literalExpression ''
+ example = lib.literalExpression ''
{
fontSize = "16";
fontFamily = "Fira Code";
}
'';
- description = lib.mdDoc ''
+ description = ''
Attribute set of client options for xtermjs.
<https://xtermjs.org/docs/api/terminal/interfaces/iterminaloptions/>
'';
@@ -101,50 +107,50 @@ in
terminalType = mkOption {
type = types.str;
default = "xterm-256color";
- description = lib.mdDoc "Terminal type to report.";
+ description = "Terminal type to report.";
};
checkOrigin = mkOption {
type = types.bool;
default = false;
- description = lib.mdDoc "Whether to allow a websocket connection from a different origin.";
+ description = "Whether to allow a websocket connection from a different origin.";
};
maxClients = mkOption {
type = types.int;
default = 0;
- description = lib.mdDoc "Maximum clients to support (0, no limit)";
+ description = "Maximum clients to support (0, no limit)";
};
indexFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = lib.mdDoc "Custom index.html path";
+ description = "Custom index.html path";
};
enableIPv6 = mkOption {
type = types.bool;
default = false;
- description = lib.mdDoc "Whether or not to enable IPv6 support.";
+ description = "Whether or not to enable IPv6 support.";
};
enableSSL = mkOption {
type = types.bool;
default = false;
- description = lib.mdDoc "Whether or not to enable SSL (https) support.";
+ description = "Whether or not to enable SSL (https) support.";
};
certFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = lib.mdDoc "SSL certificate file path.";
+ description = "SSL certificate file path.";
};
keyFile = mkOption {
type = types.nullOr types.path;
default = null;
apply = value: if value == null then null else toString value;
- description = lib.mdDoc ''
+ description = ''
SSL key file path.
For insecurely putting the keyFile in the globally readable store use
`pkgs.writeText "ttydKeyFile" "SSLKEY"`.
@@ -154,20 +160,20 @@ in
caFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = lib.mdDoc "SSL CA file path for client certificate verification.";
+ description = "SSL CA file path for client certificate verification.";
};
logLevel = mkOption {
type = types.int;
default = 7;
- description = lib.mdDoc "Set log level.";
+ description = "Set log level.";
};
};
};
###### implementation
- config = mkIf cfg.enable {
+ config = lib.mkIf cfg.enable {
assertions =
[ { assertion = cfg.enableSSL
@@ -196,7 +202,7 @@ in
script = if cfg.passwordFile != null then ''
PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/TTYD_PASSWORD_FILE")
${pkgs.ttyd}/bin/ttyd ${lib.escapeShellArgs args} \
- --credential ${escapeShellArg cfg.username}:"$PASSWORD" \
+ --credential ${lib.escapeShellArg cfg.username}:"$PASSWORD" \
${pkgs.shadow}/bin/login
''
else ''