diff --git a/modules/module-list.nix b/modules/module-list.nix index 40b31082902..d140f7ad335 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -47,6 +47,7 @@ ./services/databases/postgresql.nix ./services/hardware/acpid.nix ./services/hardware/hal.nix + ./services/hardware/pcscd.nix ./services/hardware/udev.nix ./services/logging/klogd.nix ./services/logging/syslogd.nix diff --git a/modules/services/hardware/pcscd.nix b/modules/services/hardware/pcscd.nix new file mode 100644 index 00000000000..45684e17416 --- /dev/null +++ b/modules/services/hardware/pcscd.nix @@ -0,0 +1,46 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +{ + + ###### interface + + options = { + + services.pcscd = { + + enable = mkOption { + default = false; + description = "Whether to enable the PCSC-Lite daemon."; + }; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.pcscd.enable { + + jobs.pcscd = + { description = "PCSC-Lite daemon"; + + startOn = "started udev"; + + daemonType = "daemon"; + + # Add to the drivers directory the only drivers we have by now: ccid + preStart = '' + mkdir -p /var/lib/pcsc + rm -Rf /var/lib/pcsc/drivers + ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/ + ''; + + exec = "${pkgs.pcsclite}/sbin/pcscd"; + }; + + }; + +}