diff --git a/nixos/modules/services/web-apps/ifm.nix b/nixos/modules/services/web-apps/ifm.nix index 2b081a137f6d..ca49b0f5219c 100644 --- a/nixos/modules/services/web-apps/ifm.nix +++ b/nixos/modules/services/web-apps/ifm.nix @@ -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 = { diff --git a/nixos/tests/ifm.nix b/nixos/tests/ifm.nix index 228f0a06c121..0ef0b76cb1d3 100644 --- a/nixos/tests/ifm.nix +++ b/nixos/tests/ifm.nix @@ -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") + ''; }