mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-29 16:24:10 +00:00
undervolt: expose power limits as Nixopts
We no longer escape the flags because the power limit flags want two arguments If we escaped them, we'd only get one argument with an escaped space in it. Undervolt's flags don't have anything in them that would need to be escaped, so that shouldn't break anything
This commit is contained in:
parent
bfcd94aab6
commit
eb4e67505f
@ -3,7 +3,12 @@
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.undervolt;
|
||||
cliArgs = lib.cli.toGNUCommandLineShell {} {
|
||||
|
||||
mkPLimit = limit: window:
|
||||
if (isNull limit && isNull window) then null
|
||||
else assert asserts.assertMsg (!isNull limit && !isNull window) "Both power limit and window must be set";
|
||||
"${toString limit} ${toString window}";
|
||||
cliArgs = lib.cli.toGNUCommandLine {} {
|
||||
inherit (cfg)
|
||||
verbose
|
||||
temp
|
||||
@ -21,6 +26,9 @@ let
|
||||
|
||||
temp-bat = cfg.tempBat;
|
||||
temp-ac = cfg.tempAc;
|
||||
|
||||
power-limit-long = mkPLimit cfg.p1.limit cfg.p1.window;
|
||||
power-limit-short = mkPLimit cfg.p2.limit cfg.p2.window;
|
||||
};
|
||||
in
|
||||
{
|
||||
@ -104,6 +112,40 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
p1.limit = mkOption {
|
||||
type = with types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
The P1 Power Limit in Watts.
|
||||
Both limit and window must be set.
|
||||
'';
|
||||
};
|
||||
p1.window = mkOption {
|
||||
type = with types; nullOr (oneOf [ float int ]);
|
||||
default = null;
|
||||
description = ''
|
||||
The P1 Time Window in seconds.
|
||||
Both limit and window must be set.
|
||||
'';
|
||||
};
|
||||
|
||||
p2.limit = mkOption {
|
||||
type = with types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
The P2 Power Limit in Watts.
|
||||
Both limit and window must be set.
|
||||
'';
|
||||
};
|
||||
p2.window = mkOption {
|
||||
type = with types; nullOr (oneOf [ float int ]);
|
||||
default = null;
|
||||
description = ''
|
||||
The P2 Time Window in seconds.
|
||||
Both limit and window must be set.
|
||||
'';
|
||||
};
|
||||
|
||||
useTimer = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -133,7 +175,7 @@ in
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Restart = "no";
|
||||
ExecStart = "${pkgs.undervolt}/bin/undervolt ${cliArgs}";
|
||||
ExecStart = "${pkgs.undervolt}/bin/undervolt ${toString cliArgs}";
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user