sftpman: add module
This commit is contained in:
parent
c24c298562
commit
6e2afa5c3b
10 changed files with 231 additions and 0 deletions
21
tests/modules/programs/sftpman/assert-on-no-sshkey.nix
Normal file
21
tests/modules/programs/sftpman/assert-on-no-sshkey.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
config = {
|
||||
programs.sftpman = {
|
||||
enable = true;
|
||||
|
||||
mounts = {
|
||||
mount1 = {
|
||||
host = "host1.example.com";
|
||||
mountPoint = "/path/to/somewhere";
|
||||
user = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
test.stubs.sftpman = { };
|
||||
|
||||
test.asserts.assertions.expected = [''
|
||||
sftpman mounts using authentication type "publickey" but missing 'sshKey': mount1
|
||||
''];
|
||||
};
|
||||
}
|
||||
4
tests/modules/programs/sftpman/default.nix
Normal file
4
tests/modules/programs/sftpman/default.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
sftpman-example-settings = ./example-settings.nix;
|
||||
sftpman-assert-on-no-sshkey = ./assert-on-no-sshkey.nix;
|
||||
}
|
||||
44
tests/modules/programs/sftpman/example-settings.nix
Normal file
44
tests/modules/programs/sftpman/example-settings.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
config = {
|
||||
programs.sftpman = {
|
||||
enable = true;
|
||||
defaultSshKey = "/home/user/.ssh/id_ed25519";
|
||||
|
||||
mounts = {
|
||||
mount1 = {
|
||||
host = "host1.example.com";
|
||||
mountPoint = "/path/to/somewhere";
|
||||
user = "root";
|
||||
mountOptions = [ "idmap=user" ];
|
||||
};
|
||||
mount2 = {
|
||||
host = "host2.example.com";
|
||||
mountPoint = "/another/path";
|
||||
user = "someuser";
|
||||
authType = "password";
|
||||
sshKey = null;
|
||||
};
|
||||
mount3 = {
|
||||
host = "host3.example.com";
|
||||
mountPoint = "/yet/another/path";
|
||||
user = "user";
|
||||
sshKey = "/home/user/.ssh/id_rsa";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
test.stubs.sftpman = { };
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent \
|
||||
home-files/.config/sftpman/mounts/mount1.json \
|
||||
${./expected-mount1.json}
|
||||
assertFileContent \
|
||||
home-files/.config/sftpman/mounts/mount2.json \
|
||||
${./expected-mount2.json}
|
||||
assertFileContent \
|
||||
home-files/.config/sftpman/mounts/mount3.json \
|
||||
${./expected-mount3.json}
|
||||
'';
|
||||
};
|
||||
}
|
||||
13
tests/modules/programs/sftpman/expected-mount1.json
Normal file
13
tests/modules/programs/sftpman/expected-mount1.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"authType": "publickey",
|
||||
"beforeMount": "true",
|
||||
"host": "host1.example.com",
|
||||
"id": "mount1",
|
||||
"mountOptions": [
|
||||
"idmap=user"
|
||||
],
|
||||
"mountPoint": "/path/to/somewhere",
|
||||
"port": 22,
|
||||
"sshKey": "/home/user/.ssh/id_ed25519",
|
||||
"user": "root"
|
||||
}
|
||||
11
tests/modules/programs/sftpman/expected-mount2.json
Normal file
11
tests/modules/programs/sftpman/expected-mount2.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"authType": "password",
|
||||
"beforeMount": "true",
|
||||
"host": "host2.example.com",
|
||||
"id": "mount2",
|
||||
"mountOptions": [],
|
||||
"mountPoint": "/another/path",
|
||||
"port": 22,
|
||||
"sshKey": null,
|
||||
"user": "someuser"
|
||||
}
|
||||
11
tests/modules/programs/sftpman/expected-mount3.json
Normal file
11
tests/modules/programs/sftpman/expected-mount3.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"authType": "publickey",
|
||||
"beforeMount": "true",
|
||||
"host": "host3.example.com",
|
||||
"id": "mount3",
|
||||
"mountOptions": [],
|
||||
"mountPoint": "/yet/another/path",
|
||||
"port": 22,
|
||||
"sshKey": "/home/user/.ssh/id_rsa",
|
||||
"user": "user"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue