From e587b5a8a843b296ec6293bc7684fb7856773f71 Mon Sep 17 00:00:00 2001 From: Henri Menke Date: Wed, 9 Sep 2020 09:50:00 +1200 Subject: [PATCH] nixos/shadowsocks: add extraConfig --- .../services/networking/shadowsocks.nix | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/shadowsocks.nix b/nixos/modules/services/networking/shadowsocks.nix index 4fd988297f6..6009a91cbb2 100644 --- a/nixos/modules/services/networking/shadowsocks.nix +++ b/nixos/modules/services/networking/shadowsocks.nix @@ -17,7 +17,7 @@ let plugin_opts = cfg.pluginOpts; } // optionalAttrs (cfg.password != null) { password = cfg.password; - }; + } // cfg.extraConfig; configFile = pkgs.writeText "shadowsocks.json" (builtins.toJSON opts); @@ -112,6 +112,24 @@ in Options to pass to the plugin if one was specified ''; }; + + extraConfig = mkOption { + type = types.attrs; + default = {}; + example = '' + { + nameserver = "8.8.8.8"; + } + ''; + description = '' + Additional configuration for shadowsocks that is not covered by the + provided options. The provided attrset will be serialized to JSON and + has to contain valid shadowsocks options. Unfortunately most + additional options are undocumented but it's easy to find out what is + available by looking into the source code of + + ''; + }; }; };