about summary refs log tree commit diff
path: root/nixpkgs/nixos
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-02-25 17:59:25 +0000
committerAlyssa Ross <hi@alyssa.is>2019-02-25 17:59:25 +0000
commitd42c1abb93cecf65cc86394c6353ce25c72fd6ef (patch)
tree77a4ea520717bc2561716b70672f76c8ea532d52 /nixpkgs/nixos
parent072c01a28f865e9487df09aed7ddff328252fb36 (diff)
downloadnixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar.gz
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar.bz2
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar.lz
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar.xz
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.tar.zst
nixlib-d42c1abb93cecf65cc86394c6353ce25c72fd6ef.zip
nixos/agetty: add services.mingetty.loginOptions
My use case here is setting it to "-- \u" (no extra options), so that
I can use autologinUser without it skipping the password prompt.
Diffstat (limited to 'nixpkgs/nixos')
-rw-r--r--nixpkgs/nixos/modules/services/ttys/agetty.nix26
1 files changed, 24 insertions, 2 deletions
diff --git a/nixpkgs/nixos/modules/services/ttys/agetty.nix b/nixpkgs/nixos/modules/services/ttys/agetty.nix
index b50de496e975..448b7c59e2ac 100644
--- a/nixpkgs/nixos/modules/services/ttys/agetty.nix
+++ b/nixpkgs/nixos/modules/services/ttys/agetty.nix
@@ -3,9 +3,20 @@
 with lib;
 
 let
+  cfg = config.services.mingetty;
 
-  autologinArg = optionalString (config.services.mingetty.autologinUser != null) "--autologin ${config.services.mingetty.autologinUser}";
-  gettyCmd = extraArgs: "@${pkgs.utillinux}/sbin/agetty agetty --login-program ${pkgs.shadow}/bin/login ${autologinArg} ${extraArgs}";
+  loginArgs = concatStringsSep " " [
+    "--login-program ${pkgs.shadow}/bin/login"
+
+    (optionalString (cfg.autologinUser != null)
+                    "--autologin ${cfg.autologinUser}")
+
+    (optionalString (cfg.loginOptions != null)
+                    "--login-options ${escapeShellArg cfg.loginOptions}")
+  ];
+
+  gettyCmd = extraArgs:
+    "@${pkgs.utillinux}/sbin/agetty agetty ${loginArgs} ${extraArgs}";
 
 in
 
@@ -26,6 +37,17 @@ in
         '';
       };
 
+      loginOptions = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Template for arguments to be passed to login(1).
+          See agetty(1) for details, including security considerations.
+          If unspecified, agetty will not be invoked with a --login-options option.
+        '';
+        example = "-h darkstar -- \u";
+      };
+
       greetingLine = mkOption {
         type = types.str;
         description = ''