vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / hardware / auto-cpufreq.nix
blobed24c656c5438169984c4031bb7343ae6ccd49cc
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.auto-cpufreq;
4   cfgFilename = "auto-cpufreq.conf";
5   cfgFile = format.generate cfgFilename cfg.settings;
7   format = pkgs.formats.ini {};
8 in {
9   options = {
10     services.auto-cpufreq = {
11       enable = lib.mkEnableOption "auto-cpufreq daemon";
13       settings = lib.mkOption {
14         description = ''
15           Configuration for `auto-cpufreq`.
17           The available options can be found in [the example configuration file](https://github.com/AdnanHodzic/auto-cpufreq/blob/v${pkgs.auto-cpufreq.version}/auto-cpufreq.conf-example).
18           '';
20         default = {};
21         type = lib.types.submodule { freeformType = format.type; };
22       };
23     };
24   };
26   config = lib.mkIf cfg.enable {
27     environment.systemPackages = [ pkgs.auto-cpufreq ];
29     systemd = {
30       packages = [ pkgs.auto-cpufreq ];
31       services.auto-cpufreq = {
32         # Workaround for https://github.com/NixOS/nixpkgs/issues/81138
33         wantedBy = [ "multi-user.target" ];
34         path = with pkgs; [ bash coreutils ];
36         serviceConfig.WorkingDirectory = "";
37         serviceConfig.ExecStart = [
38           ""
39           "${lib.getExe pkgs.auto-cpufreq} --daemon --config ${cfgFile}"
40         ];
41       };
42     };
43   };
45   # uses attributes of the linked package
46   meta = {
47     buildDocsInSandbox = false;
48     maintainers = with lib.maintainers; [ nicoo ];
49   };