upower: load config from /etc

In the process of making UPower.conf customizable (#73968), it came up
that UPower doesn't load its config from /etc by default.

The UPower derivation is modified to make it load its config from /etc
at runtime, but still install the default config to its nix store path
as before.

The UPower module is modified to put the config in /etc.
This commit is contained in:
Matthew Harm Bekkema 2019-12-03 20:50:42 +11:00
parent aecfea098e
commit f83a83f964
2 changed files with 15 additions and 16 deletions

View File

@ -220,22 +220,19 @@ in
systemd.packages = [ cfg.package ];
systemd.services.upower.environment.UPOWER_CONF_FILE_NAME = pkgs.writeTextFile {
name = "UPower.conf";
text = generators.toINI {} {
UPower = {
EnableWattsUpPro = cfg.enableWattsUpPro;
NoPollBatteries = cfg.noPollBatteries;
IgnoreLid = cfg.ignoreLid;
UsePercentageForPolicy = cfg.usePercentageForPolicy;
PercentageLow = cfg.percentageLow;
PercentageCritical = cfg.percentageCritical;
PercentageAction = cfg.percentageAction;
TimeLow = cfg.timeLow;
TimeCritical = cfg.timeCritical;
TimeAction = cfg.timeAction;
CriticalPowerAction = cfg.criticalPowerAction;
};
environment.etc."UPower/UPower.conf".text = generators.toINI {} {
UPower = {
EnableWattsUpPro = cfg.enableWattsUpPro;
NoPollBatteries = cfg.noPollBatteries;
IgnoreLid = cfg.ignoreLid;
UsePercentageForPolicy = cfg.usePercentageForPolicy;
PercentageLow = cfg.percentageLow;
PercentageCritical = cfg.percentageCritical;
PercentageAction = cfg.percentageAction;
TimeLow = cfg.timeLow;
TimeCritical = cfg.timeCritical;
TimeAction = cfg.timeAction;
CriticalPowerAction = cfg.criticalPowerAction;
};
};
};

View File

@ -52,12 +52,14 @@ stdenv.mkDerivation {
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
"--with-systemdutildir=${placeholder "out"}/lib/systemd"
"--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d"
"--sysconfdir=/etc"
];
doCheck = false; # fails with "env: './linux/integration-test': No such file or directory"
installFlags = [
"historydir=$(TMPDIR)/foo"
"sysconfdir=${placeholder "out"}/etc"
];
meta = with stdenv.lib; {