{ 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 = "fork";

        # 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";
      };
      
  };
  
}