Merge pull request #290240 from rhoriguchi/nixos/hardware/printers

nixos/hardware/printers: fix empty ppdOptions

authored by Michele Guerini Rocco and committed by GitHub 9fcbb05a 9fac9b39

+16 -11
+16 -11
nixos/modules/hardware/printers.nix
··· 2 2 with lib; 3 3 let 4 4 cfg = config.hardware.printers; 5 - ppdOptionsString = options: optionalString (options != {}) 6 - (concatStringsSep " " 7 - (mapAttrsToList (name: value: "-o '${name}'='${value}'") options) 8 - ); 9 - ensurePrinter = p: '' 10 - ${pkgs.cups}/bin/lpadmin -p '${p.name}' -E \ 11 - ${optionalString (p.location != null) "-L '${p.location}'"} \ 12 - ${optionalString (p.description != null) "-D '${p.description}'"} \ 13 - -v '${p.deviceUri}' \ 14 - -m '${p.model}' \ 15 - ${ppdOptionsString p.ppdOptions} 5 + 6 + ensurePrinter = p: let 7 + args = cli.toGNUCommandLineShell {} ({ 8 + p = p.name; 9 + v = p.deviceUri; 10 + m = p.model; 11 + } // optionalAttrs (p.location != null) { 12 + L = p.location; 13 + } // optionalAttrs (p.description != null) { 14 + D = p.description; 15 + } // optionalAttrs (p.ppdOptions != {}) { 16 + o = mapAttrsToList (name: value: "'${name}'='${value}'") p.ppdOptions; 17 + }); 18 + in '' 19 + ${pkgs.cups}/bin/lpadmin ${args} -E 16 20 ''; 21 + 17 22 ensureDefaultPrinter = name: '' 18 23 ${pkgs.cups}/bin/lpadmin -d '${name}' 19 24 '';