Unverified Commit 85f896ec authored by Vladimír Čunát's avatar Vladimír Čunát
Browse files

nixos/kresd: add kresd-cli wrapper script (#388290)

parents 907c6fb6 52525af4
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -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;