70 lines
2.6 KiB
Diff
70 lines
2.6 KiB
Diff
|
diff --git a/nixos/modules/services/network-filesystems/kubo.nix b/nixos/modules/services/network-filesystems/kubo.nix
|
||
|
--- a/nixos/modules/services/network-filesystems/kubo.nix
|
||
|
+++ b/nixos/modules/services/network-filesystems/kubo.nix
|
||
|
@@ -45,6 +45,11 @@ let
|
||
|
then "[${s 1}]:${s 3}"
|
||
|
else null; # not valid for listen datagram, skip
|
||
|
|
||
|
+ multiaddrsFunc = f: addrsRaw: if builtins.isString addrsRaw then let out = f addrsRaw; in lib.optional (out != null) out else lib.filter (x: x != null) (map f addrsRaw);
|
||
|
+
|
||
|
+ multiaddrsToListenStream = multiaddrsFunc multiaddrToListenStream;
|
||
|
+ multiaddrsToListenDatagram = multiaddrsFunc multiaddrToListenDatagram;
|
||
|
+
|
||
|
in
|
||
|
{
|
||
|
|
||
|
@@ -137,19 +142,19 @@ in
|
||
|
|
||
|
options = {
|
||
|
Addresses.API = mkOption {
|
||
|
- type = types.str;
|
||
|
+ type = types.oneOf [ types.str (types.listOf types.str) ];
|
||
|
default = "/ip4/127.0.0.1/tcp/5001";
|
||
|
description = lib.mdDoc "Where Kubo exposes its API to";
|
||
|
};
|
||
|
|
||
|
Addresses.Gateway = mkOption {
|
||
|
- type = types.str;
|
||
|
+ type = types.oneOf [ types.str (types.listOf types.str) ];
|
||
|
default = "/ip4/127.0.0.1/tcp/8080";
|
||
|
description = lib.mdDoc "Where the IPFS Gateway can be reached";
|
||
|
};
|
||
|
|
||
|
Addresses.Swarm = mkOption {
|
||
|
- type = types.listOf types.str;
|
||
|
+ type = types.oneOf [ types.str (types.listOf types.str) ];
|
||
|
default = [
|
||
|
"/ip4/0.0.0.0/tcp/4001"
|
||
|
"/ip6/::/tcp/4001"
|
||
|
@@ -294,14 +299,14 @@ in
|
||
|
socketConfig = {
|
||
|
ListenStream =
|
||
|
let
|
||
|
- fromCfg = multiaddrToListenStream cfg.settings.Addresses.Gateway;
|
||
|
+ fromCfg = multiaddrsToListenStream cfg.settings.Addresses.Gateway;
|
||
|
in
|
||
|
- [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||
|
+ [ "" ] ++ fromCfg;
|
||
|
ListenDatagram =
|
||
|
let
|
||
|
- fromCfg = multiaddrToListenDatagram cfg.settings.Addresses.Gateway;
|
||
|
+ fromCfg = multiaddrsToListenDatagram cfg.settings.Addresses.Gateway;
|
||
|
in
|
||
|
- [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||
|
+ [ "" ] ++ fromCfg;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
@@ -311,9 +316,9 @@ in
|
||
|
# in the multiaddr.
|
||
|
socketConfig.ListenStream =
|
||
|
let
|
||
|
- fromCfg = multiaddrToListenStream cfg.settings.Addresses.API;
|
||
|
+ fromCfg = multiaddrsToListenStream cfg.settings.Addresses.API;
|
||
|
in
|
||
|
- [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||
|
+ [ "" "%t/ipfs.sock" ] ++ fromCfg;
|
||
|
};
|
||
|
};
|
||
|
|