ae359d1ef2
Fixes issues described in #208242 for this part of the nixpkgs tree. There are no behavioral changes in this, it only adjusts the code so that it is easier to understand.
48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{ config, lib, pkgs, options, ... }:
|
|
|
|
let
|
|
logPrefix = "services.prometheus.exporter.ipmi";
|
|
cfg = config.services.prometheus.exporters.ipmi;
|
|
inherit (lib)
|
|
mkOption
|
|
types
|
|
concatStringsSep
|
|
optionals
|
|
escapeShellArg
|
|
;
|
|
in {
|
|
port = 9290;
|
|
|
|
extraOpts = {
|
|
configFile = mkOption {
|
|
type = types.nullOr types.path;
|
|
default = null;
|
|
description = ''
|
|
Path to configuration file.
|
|
'';
|
|
};
|
|
|
|
webConfigFile = mkOption {
|
|
type = types.nullOr types.path;
|
|
default = null;
|
|
description = ''
|
|
Path to configuration file that can enable TLS or authentication.
|
|
'';
|
|
};
|
|
};
|
|
|
|
serviceOpts.serviceConfig = {
|
|
ExecStart = with cfg; concatStringsSep " " ([
|
|
"${pkgs.prometheus-ipmi-exporter}/bin/ipmi_exporter"
|
|
"--web.listen-address ${listenAddress}:${toString port}"
|
|
] ++ optionals (cfg.webConfigFile != null) [
|
|
"--web.config.file ${escapeShellArg cfg.webConfigFile}"
|
|
] ++ optionals (cfg.configFile != null) [
|
|
"--config.file ${escapeShellArg cfg.configFile}"
|
|
] ++ extraFlags);
|
|
|
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
|
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
|
|
};
|
|
}
|