diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2018-10-25 14:51:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 14:51:22 +0200 |
commit | 5dc174804313ab0d3fcb4dfe28c4509f9f3421a0 (patch) | |
tree | 1aab817d69f0b10b589bd37d8c5c38d5036d6b18 | |
parent | 926d6c0bad41a094aefe0a9d3bbd14ccec83b30e (diff) | |
parent | c0d90b57d68e8973c4bd94244cac0bf07a0368ff (diff) | |
download | nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar.gz nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar.bz2 nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar.lz nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar.xz nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.tar.zst nixlib-5dc174804313ab0d3fcb4dfe28c4509f9f3421a0.zip |
Merge pull request #48728 from qolii/eternal-terminal-module
nixos/eternal-terminal: init new module.
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/networking/eternal-terminal.nix | 89 |
2 files changed, 90 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index ae7a3a783d3f..5b308987958c 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -503,6 +503,7 @@ ./services/networking/dnsmasq.nix ./services/networking/ejabberd.nix ./services/networking/epmd.nix + ./services/networking/eternal-terminal.nix ./services/networking/fakeroute.nix ./services/networking/ferm.nix ./services/networking/firefox/sync-server.nix diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix new file mode 100644 index 000000000000..be7337ece7e4 --- /dev/null +++ b/nixos/modules/services/networking/eternal-terminal.nix @@ -0,0 +1,89 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.eternal-terminal; + +in + +{ + + ###### interface + + options = { + + services.eternal-terminal = { + + enable = mkEnableOption "Eternal Terminal server"; + + port = mkOption { + default = 2022; + type = types.int; + description = '' + The port the server should listen on. Will use the server's default (2022) if not specified. + ''; + }; + + verbosity = mkOption { + default = 0; + type = types.enum (lib.range 0 9); + description = '' + The verbosity level (0-9). + ''; + }; + + silent = mkOption { + default = false; + type = types.bool; + description = '' + If enabled, disables all logging. + ''; + }; + + logSize = mkOption { + default = 20971520; + type = types.int; + description = '' + The maximum log size. + ''; + }; + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + + # We need to ensure the et package is fully installed because + # the (remote) et client runs the `etterminal` binary when it + # connects. + environment.systemPackages = [ pkgs.eternal-terminal ]; + + systemd.services = { + eternal-terminal = { + description = "Eternal Terminal server."; + wantedBy = [ "multi-user.target" ]; + after = [ "syslog.target" "network.target" ]; + serviceConfig = { + Type = "forking"; + ExecStart = "${pkgs.eternal-terminal}/bin/etserver --daemon --cfgfile=${pkgs.writeText "et.cfg" '' + ; et.cfg : Config file for Eternal Terminal + ; + + [Networking] + port = ${toString cfg.port} + + [Debug] + verbose = ${toString cfg.verbosity} + silent = ${if cfg.silent then "1" else "0"} + logsize = ${toString cfg.logSize} + ''}"; + Restart = "on-failure"; + KillMode = "process"; + }; + }; + }; + }; +} |