# SPDX-FileCopyrightText: 2026 Qyriad # # SPDX-License-Identifier: EUPL-1.1 { pkgs, lib, config, ... }: let cfg = config.services.distccd; cliArgs = lib.cli.toCommandLineShellGNU { explicitBool = false; } { no-detach = true; daemon = true; enable-tcp-insecure = true; port = cfg.port; # Nulls are handled automatically. job-lifetime = cfg.jobTimeout; log-level = cfg.logLevel; jobs = cfg.maxJobs; nice = cfg.nice; stats = cfg.stats.enable; stats-port = if cfg.stats.enable then cfg.stats.port else null; zeroconf = cfg.zeroconf; allow = cfg.allowedClients; }; startDistccd = pkgs.writeShellApplication { name = "start-distccd"; runtimeInputs = [ pkgs.distccMasquerade ]; text = '' ${lib.getExe' cfg.package "distccd"} \ ${cliArgs} ''; }; in { dynamicism.for.distccd = { source-options = [ "services.distccd.jobTimeout" "services.distccd.logLevel" "services.distccd.maxJobs" "services.distccd.nice" ]; unitDropins."distccd.service" = pkgs.writeTextFile { name = "distccd-override.conf"; text = '' [Service] ExecStart= ExecStart=${lib.getExe startDistccd} ''; passthru.startScript = startDistccd; }; }; }