1import ./make-test-python.nix ({ pkgs, ...} : {
2 name = "ipfs";
3 meta = with pkgs.lib.maintainers; {
4 maintainers = [ mguentner ];
5 };
6
7 nodes.machine = { ... }: {
8 services.ipfs = {
9 enable = true;
10 # Also will add a unix domain socket socket API address, see module.
11 startWhenNeeded = true;
12 apiAddress = "/ip4/127.0.0.1/tcp/2324";
13 };
14 };
15
16 testScript = ''
17 start_all()
18
19 # IPv4 activation
20
21 machine.succeed("ipfs --api /ip4/127.0.0.1/tcp/2324 id")
22 ipfs_hash = machine.succeed(
23 "echo fnord | ipfs --api /ip4/127.0.0.1/tcp/2324 add | awk '{ print $2 }'"
24 )
25
26 machine.succeed(f"ipfs cat /ipfs/{ipfs_hash.strip()} | grep fnord")
27
28 # Unix domain socket activation
29
30 machine.stop_job("ipfs")
31
32 ipfs_hash = machine.succeed(
33 "echo fnord2 | ipfs --api /unix/run/ipfs.sock add | awk '{ print $2 }'"
34 )
35 machine.succeed(
36 f"ipfs --api /unix/run/ipfs.sock cat /ipfs/{ipfs_hash.strip()} | grep fnord2"
37 )
38 '';
39})