1{ pkgs, ... }: 2{ 3 name = "rsyncd"; 4 5 nodes = 6 let 7 mkNode = 8 socketActivated: 9 { config, ... }: 10 { 11 networking.firewall.allowedTCPPorts = [ config.services.rsyncd.port ]; 12 services.rsyncd = { 13 enable = true; 14 inherit socketActivated; 15 settings = { 16 globalSection = { 17 "reverse lookup" = false; 18 "forward lookup" = false; 19 }; 20 sections = { 21 tmp = { 22 path = "/nix/store"; 23 comment = "test module"; 24 }; 25 }; 26 }; 27 }; 28 }; 29 in 30 { 31 a = mkNode false; 32 b = mkNode true; 33 }; 34 35 testScript = '' 36 start_all() 37 a.wait_for_unit("rsync") 38 b.wait_for_unit("sockets.target") 39 b.succeed("rsync a::") 40 a.succeed("rsync b::") 41 ''; 42}