From 3351348827926935b407d1cfbb7dd814c30da107 Mon Sep 17 00:00:00 2001 From: Michael Strobel Date: Thu, 8 Jan 2026 12:05:23 +0100 Subject: [PATCH] sftpman: add missing options - `authType` is missing the `authentication-agent` enum value - `mountDestPath` is missing completely --- modules/programs/sftpman.nix | 7 +++++++ tests/modules/programs/sftpman/example-settings.nix | 10 ++++++++++ tests/modules/programs/sftpman/expected-mount1.json | 1 + tests/modules/programs/sftpman/expected-mount2.json | 1 + tests/modules/programs/sftpman/expected-mount3.json | 1 + tests/modules/programs/sftpman/expected-mount4.json | 12 ++++++++++++ 6 files changed, 32 insertions(+) create mode 100644 tests/modules/programs/sftpman/expected-mount4.json diff --git a/modules/programs/sftpman.nix b/modules/programs/sftpman.nix index 0201a6fc3..f7bb55aa6 100644 --- a/modules/programs/sftpman.nix +++ b/modules/programs/sftpman.nix @@ -40,6 +40,12 @@ let description = "The remote path to mount."; }; + mountDestPath = mkOption { + type = types.nullOr types.str; + default = null; + description = "The path on the current machine where the remote path would be mounted."; + }; + authType = mkOption { type = types.enum [ "password" @@ -47,6 +53,7 @@ let "hostbased" "keyboard-interactive" "gssapi-with-mic" + "authentication-agent" ]; default = "publickey"; description = "The authentication method to use."; diff --git a/tests/modules/programs/sftpman/example-settings.nix b/tests/modules/programs/sftpman/example-settings.nix index b782fea2b..5857c1a6e 100644 --- a/tests/modules/programs/sftpman/example-settings.nix +++ b/tests/modules/programs/sftpman/example-settings.nix @@ -23,6 +23,13 @@ user = "user"; sshKey = "/home/user/.ssh/id_rsa"; }; + mount4 = { + host = "host4.example.com"; + mountPoint = "/another/path/somewhere/else"; + user = "user"; + authType = "authentication-agent"; + mountDestPath = "/mnt/host4"; + }; }; }; @@ -36,5 +43,8 @@ assertFileContent \ home-files/.config/sftpman/mounts/mount3.json \ ${./expected-mount3.json} + assertFileContent \ + home-files/.config/sftpman/mounts/mount4.json \ + ${./expected-mount4.json} ''; } diff --git a/tests/modules/programs/sftpman/expected-mount1.json b/tests/modules/programs/sftpman/expected-mount1.json index 06124fd26..b532426b1 100644 --- a/tests/modules/programs/sftpman/expected-mount1.json +++ b/tests/modules/programs/sftpman/expected-mount1.json @@ -3,6 +3,7 @@ "beforeMount": "true", "host": "host1.example.com", "id": "mount1", + "mountDestPath": null, "mountOptions": [ "idmap=user" ], diff --git a/tests/modules/programs/sftpman/expected-mount2.json b/tests/modules/programs/sftpman/expected-mount2.json index 384a9e93f..46360d2c1 100644 --- a/tests/modules/programs/sftpman/expected-mount2.json +++ b/tests/modules/programs/sftpman/expected-mount2.json @@ -3,6 +3,7 @@ "beforeMount": "true", "host": "host2.example.com", "id": "mount2", + "mountDestPath": null, "mountOptions": [], "mountPoint": "/another/path", "port": 22, diff --git a/tests/modules/programs/sftpman/expected-mount3.json b/tests/modules/programs/sftpman/expected-mount3.json index 5ee679623..d2024c951 100644 --- a/tests/modules/programs/sftpman/expected-mount3.json +++ b/tests/modules/programs/sftpman/expected-mount3.json @@ -3,6 +3,7 @@ "beforeMount": "true", "host": "host3.example.com", "id": "mount3", + "mountDestPath": null, "mountOptions": [], "mountPoint": "/yet/another/path", "port": 22, diff --git a/tests/modules/programs/sftpman/expected-mount4.json b/tests/modules/programs/sftpman/expected-mount4.json new file mode 100644 index 000000000..ad51fe19e --- /dev/null +++ b/tests/modules/programs/sftpman/expected-mount4.json @@ -0,0 +1,12 @@ +{ + "authType": "authentication-agent", + "beforeMount": "true", + "host": "host4.example.com", + "id": "mount4", + "mountDestPath": "/mnt/host4", + "mountOptions": [], + "mountPoint": "/another/path/somewhere/else", + "port": 22, + "sshKey": "/home/user/.ssh/id_ed25519", + "user": "user" +}