at 17.09-beta 822 B view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let 6 cfg = config.services.lldpd; 7 8in 9 10{ 11 options.services.lldpd = { 12 enable = mkEnableOption "Link Layer Discovery Protocol Daemon"; 13 14 extraArgs = mkOption { 15 type = types.listOf types.str; 16 default = []; 17 example = [ "-c" "-k" "-I eth0" ]; 18 description = "List of command line parameters for lldpd"; 19 }; 20 }; 21 22 config = mkIf cfg.enable { 23 users.extraUsers._lldpd = { 24 description = "lldpd user"; 25 group = "_lldpd"; 26 home = "/var/run/lldpd"; 27 }; 28 users.extraGroups._lldpd = {}; 29 30 environment.systemPackages = [ pkgs.lldpd ]; 31 systemd.packages = [ pkgs.lldpd ]; 32 33 systemd.services.lldpd = { 34 wantedBy = [ "multi-user.target" ]; 35 environment.LLDPD_OPTIONS = concatStringsSep " " cfg.extraArgs; 36 }; 37 }; 38}