at master 1.1 kB view raw
1{ lib, ... }: 2{ 3 name = "magic-wormhole-mailbox-server"; 4 meta.maintainers = [ lib.maintainers.mmahut ]; 5 6 nodes = { 7 server = { 8 networking.firewall.allowedTCPPorts = [ 4000 ]; 9 services.magic-wormhole-mailbox-server.enable = true; 10 }; 11 client_alice = 12 { pkgs, ... }: 13 { 14 networking.firewall.enable = false; 15 environment.systemPackages = [ pkgs.magic-wormhole ]; 16 }; 17 client_bob = 18 { pkgs, ... }: 19 { 20 environment.systemPackages = [ pkgs.magic-wormhole ]; 21 }; 22 }; 23 24 testScript = '' 25 start_all() 26 27 # Start the wormhole relay server 28 server.wait_for_unit("magic-wormhole-mailbox-server.service") 29 server.wait_for_open_port(4000) 30 31 # Create a secret file and send it to Bob 32 client_alice.succeed("echo mysecret > secretfile") 33 client_alice.succeed("wormhole --relay-url=ws://server:4000/v1 send -0 secretfile >&2 &") 34 35 # Retrieve a secret file from Alice and check its content 36 client_bob.succeed("wormhole --relay-url=ws://server:4000/v1 receive -0 --accept-file") 37 client_bob.succeed("grep mysecret secretfile") 38 ''; 39}