nixos/kresd: add kresd-cli wrapper script

This commit is contained in:
Sandro Jäckel
2025-04-18 20:53:20 +02:00
parent ed0b188156
commit 52525af4aa
+20 -3
View File
@@ -68,8 +68,7 @@ in
description = ''
Whether to enable knot-resolver domain name server.
DNSSEC validation is turned on by default.
You can run `sudo nc -U /run/knot-resolver/control/1`
and give commands interactively to kresd@1.service.
You can run `kresd-cli 1` and give commands interactively to kresd@1.service.
'';
};
package = lib.mkPackageOption pkgs "knot-resolver" {
@@ -135,7 +134,25 @@ in
###### implementation
config = lib.mkIf cfg.enable {
environment.etc."knot-resolver/kresd.conf".source = configFile; # not required
environment = {
etc."knot-resolver/kresd.conf".source = configFile; # not required
systemPackages = [
(pkgs.writeShellScriptBin "kresd-cli" ''
if [[ ''${1:-} == -h || ''${1:-} == --help ]]; then
echo "Usage: $0 [X]"
echo
echo " X is number of the control socket and corresponds to the number of the template unit."
exit
fi
exec=exec
if [[ "$USER" != knot-resolver ]]; then
exec='exec /run/wrappers/bin/sudo -u knot-resolver'
fi
$exec ${lib.getExe pkgs.socat} - /run/knot-resolver/control/''${1:-1}
'')
];
};
networking.resolvconf.useLocalResolver = lib.mkDefault true;