nixos/fancontrol: clean up module

set a group and user for the service
remove default null config
  it's required, now it throws an error pointing to the option

set myself (module author) as maintainer
This commit is contained in:
Evils 2021-05-07 20:02:17 +02:00 committed by Jonathan Ringer
parent 3d043c6939
commit 5ae90276c3

View file

@ -6,21 +6,21 @@ let
cfg = config.hardware.fancontrol; cfg = config.hardware.fancontrol;
configFile = pkgs.writeText "fancontrol.conf" cfg.config; configFile = pkgs.writeText "fancontrol.conf" cfg.config;
in{ in
{
options.hardware.fancontrol = { options.hardware.fancontrol = {
enable = mkEnableOption "software fan control (requires fancontrol.config)"; enable = mkEnableOption "software fan control (requires fancontrol.config)";
config = mkOption { config = mkOption {
default = null; type = types.lines;
type = types.nullOr types.lines; description = "Required fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
example = '' example = ''
# Configuration file generated by pwmconfig # Configuration file generated by pwmconfig
INTERVAL=10 INTERVAL=10
DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656 DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656
DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a
FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input
FCFANS= hwmon4/device/pwm1=hwmon4/device/fan1_input FCFANS=hwmon4/device/pwm1=hwmon4/device/fan1_input
MINTEMP=hwmon4/device/pwm1=35 MINTEMP=hwmon4/device/pwm1=35
MAXTEMP=hwmon4/device/pwm1=65 MAXTEMP=hwmon4/device/pwm1=65
MINSTART=hwmon4/device/pwm1=150 MINSTART=hwmon4/device/pwm1=150
@ -30,16 +30,30 @@ in{
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
users = {
groups.lm_sensors = {};
users.fancontrol = {
isSystemUser = true;
group = "lm_sensors";
description = "fan speed controller";
};
};
systemd.services.fancontrol = { systemd.services.fancontrol = {
unitConfig.Documentation = "man:fancontrol(8)"; documentation = [ "man:fancontrol(8)" ];
description = "software fan control"; description = "software fan control";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "lm_sensors.service" ]; after = [ "lm_sensors.service" ];
serviceConfig = { serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}"; ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}";
Group = "lm_sensors";
User = "fancontrol";
}; };
}; };
}; };
meta.maintainers = [ maintainers.evils ];
} }