1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.mtr;
10
11in
12{
13 options = {
14 programs.mtr = {
15 enable = lib.mkOption {
16 type = lib.types.bool;
17 default = false;
18 description = ''
19 Whether to add mtr to the global environment and configure a
20 setcap wrapper for it.
21 '';
22 };
23
24 package = lib.mkPackageOption pkgs "mtr" { };
25 };
26 };
27
28 config = lib.mkIf cfg.enable {
29 environment.systemPackages = [ cfg.package ];
30
31 security.wrappers.mtr-packet = {
32 owner = "root";
33 group = "root";
34 capabilities = "cap_net_raw+p";
35 source = "${cfg.package}/bin/mtr-packet";
36 };
37 };
38}