at master 1.1 kB view raw
1{ pkgs, ... }: 2 3{ 4 name = "ifm"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ litchipi ]; 7 }; 8 9 nodes = { 10 server = rec { 11 services.ifm = { 12 enable = true; 13 port = 9001; 14 dataDir = "/data"; 15 }; 16 17 system.activationScripts.ifm-setup-dir = '' 18 mkdir -p ${services.ifm.dataDir} 19 chmod u+w,g+w,o+w ${services.ifm.dataDir} 20 ''; 21 }; 22 }; 23 24 testScript = '' 25 start_all() 26 server.wait_for_unit("ifm.service") 27 server.wait_for_open_port(9001) 28 server.succeed("curl --fail http://localhost:9001") 29 30 server.succeed("echo \"testfile\" > testfile && shasum testfile >> checksums") 31 server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=upload\" -F \"dir=\" -F \"file=@testfile\" | grep \"OK\""); 32 server.succeed("rm testfile") 33 server.succeed("curl --fail http://localhost:9001 -X POST -F \"api=download\" -F \"filename=testfile\" -F \"dir=\" --output testfile"); 34 server.succeed("shasum testfile >> checksums && shasum --check checksums") 35 ''; 36}