nixos/captive-browser: fix module

Fixes the broken metrics evaluation which was caused by a `trace`
warning in stdout which confused `jq` in `pkgs/top-level/metrics.nix`.

Also made the `bind-device` feature optional as suggested after the
merge.
This commit is contained in:
Maximilian Bosch 2019-06-14 20:17:37 +02:00
parent b8c827c266
commit d9f7bac91f
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E

View File

@ -15,6 +15,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.captive-browser;
defaultText = "pkgs.captive-browser";
description = "Which package to use for captive-browser";
};
interface = mkOption {
@ -35,7 +37,7 @@ in
''http://cache.nixos.org/''
];
description = ''
the shell (/bin/sh) command executed once the proxy starts.
The shell (/bin/sh) command executed once the proxy starts.
When browser exits, the proxy exits. An extra env var PROXY is available.
Here, we use a separate Chrome instance in Incognito mode, so that
@ -51,7 +53,7 @@ in
dhcp-dns = mkOption {
type = types.str;
description = ''
the shell (/bin/sh) command executed to obtain the DHCP
The shell (/bin/sh) command executed to obtain the DHCP
DNS server address. The first match of an IPv4 regex is used.
IPv4 only, because let's be real, it's a captive portal.
'';
@ -62,6 +64,16 @@ in
default = "localhost:1666";
description = ''the listen address for the SOCKS5 proxy server'';
};
bindInterface = mkOption {
default = true;
type = types.bool;
description = ''
Binds <package>captive-browser</package> to the network interface declared in
<literal>cfg.interface</literal>. This can be used to avoid collisions
with private subnets.
'';
};
};
};
@ -99,7 +111,9 @@ in
browser = """${cfg.browser}"""
dhcp-dns = """${cfg.dhcp-dns}"""
socks5-addr = """${cfg.socks5-addr}"""
bind-device = """${cfg.interface}"""
${optionalString cfg.bindInterface ''
bind-device = """${cfg.interface}"""
''}
''}
exec ${cfg.package}/bin/captive-browser
'';