Remove n0emis as direct maintainer (#365023)
[NixPkgs.git] / nixos / modules / services / networking / fireqos.nix
blobeb1e46b4b2d136a3e6b56450b7190113b53846b1
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
8   cfg = config.services.fireqos;
9   fireqosConfig = pkgs.writeText "fireqos.conf" cfg.config;
12   options.services.fireqos = {
13     enable = lib.mkEnableOption "FireQOS";
15     config = lib.mkOption {
16       type = lib.types.lines;
17       example = ''
18         interface wlp3s0 world-in input rate 10mbit ethernet
19           class web commit 50kbit
20             match tcp ports 80,443
22         interface wlp3s0 world-out input rate 10mbit ethernet
23           class web commit 50kbit
24             match tcp ports 80,443
25       '';
26       description = ''
27         The FireQOS configuration.
28       '';
29     };
30   };
32   config = lib.mkIf cfg.enable {
33     systemd.services.fireqos = {
34       description = "FireQOS";
35       after = [ "network.target" ];
36       wantedBy = [ "multi-user.target" ];
37       serviceConfig = {
38         Type = "oneshot";
39         RemainAfterExit = true;
40         ExecStart = "${pkgs.firehol}/bin/fireqos start ${fireqosConfig}";
41         ExecStop = [
42           "${pkgs.firehol}/bin/fireqos stop"
43           "${pkgs.firehol}/bin/fireqos clear_all_qos"
44         ];
45       };
46     };
47   };