nixos/ifm: replace activation script with systemd tmpfiles
See https://github.com/NixOS/nixpkgs/issues/475305
This commit is contained in:
@@ -53,6 +53,7 @@ in
|
||||
description = "Improved file manager, a single-file web based filemanager";
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment = {
|
||||
|
||||
+34
-22
@@ -7,30 +7,42 @@
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = rec {
|
||||
services.ifm = {
|
||||
enable = true;
|
||||
port = 9001;
|
||||
dataDir = "/data";
|
||||
};
|
||||
server =
|
||||
{ config, ... }:
|
||||
{
|
||||
services.ifm = {
|
||||
enable = true;
|
||||
port = 9001;
|
||||
dataDir = "/data";
|
||||
};
|
||||
|
||||
system.activationScripts.ifm-setup-dir = ''
|
||||
mkdir -p ${services.ifm.dataDir}
|
||||
chmod u+w,g+w,o+w ${services.ifm.dataDir}
|
||||
'';
|
||||
};
|
||||
systemd.tmpfiles.settings = {
|
||||
ifm-data-dir = {
|
||||
${config.services.ifm.dataDir}.d = {
|
||||
mode = "0777";
|
||||
user = "root";
|
||||
group = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
server.wait_for_unit("ifm.service")
|
||||
server.wait_for_open_port(9001)
|
||||
server.succeed("curl --fail http://localhost:9001")
|
||||
testScript =
|
||||
# python
|
||||
''
|
||||
start_all()
|
||||
server.wait_for_unit("ifm.service")
|
||||
server.wait_for_open_port(9001)
|
||||
server.succeed("curl --fail http://localhost:9001")
|
||||
|
||||
server.succeed("echo \"testfile\" > testfile && shasum testfile >> checksums")
|
||||
server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=upload\" -F \"dir=\" -F \"file=@testfile\" | grep \"OK\"");
|
||||
server.succeed("rm testfile")
|
||||
server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=download\" -F \"filename=testfile\" -F \"dir=\" --output testfile");
|
||||
server.succeed("shasum testfile >> checksums && shasum --check checksums")
|
||||
'';
|
||||
server.succeed('echo "testfile" > testfile')
|
||||
server.succeed("shasum testfile | tee checksums")
|
||||
|
||||
server.succeed('curl --fail http://localhost:9001 -X POST -F "api=upload" -F "dir=" -F "file=@testfile" | grep "OK"');
|
||||
server.succeed("rm testfile")
|
||||
|
||||
server.succeed('curl --fail http://localhost:9001 -X POST -F "api=download" -F "filename=testfile" -F "dir=" --output testfile');
|
||||
server.succeed("shasum --check checksums")
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user