at 15.09-beta 1.2 kB view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let cfg = config.programs.cdemu; 6in { 7 8 options = { 9 programs.cdemu = { 10 enable = mkOption { 11 default = false; 12 description = "Whether to enable cdemu for users of appropriate group (default cdrom)"; 13 }; 14 group = mkOption { 15 default = "cdrom"; 16 description = "Required group for users of cdemu"; 17 }; 18 gui = mkOption { 19 default = true; 20 description = "Whether to install cdemu GUI (gCDEmu)"; 21 }; 22 image-analyzer = mkOption { 23 default = true; 24 description = "Whether to install image analyzer"; 25 }; 26 }; 27 }; 28 29 config = mkIf cfg.enable { 30 31 boot = { 32 extraModulePackages = [ pkgs.linuxPackages.vhba ]; 33 kernelModules = [ "vhba" ]; 34 }; 35 36 services = { 37 udev.extraRules = '' 38 KERNEL=="vhba_ctl", MODE="0660", OWNER="root", GROUP="${cfg.group}" 39 ''; 40 dbus.packages = [ pkgs.cdemu-daemon ]; 41 }; 42 43 environment.systemPackages = 44 [ pkgs.cdemu-daemon pkgs.cdemu-client ] 45 ++ optional cfg.gui pkgs.gcdemu 46 ++ optional cfg.image-analyzer pkgs.image-analyzer; 47 }; 48 49}