summaryrefslogtreecommitdiffstats
path: root/nixos/modules/hardware
diff options
context:
space:
mode:
authorRyan Horiguchi <ryan.horiguchi@gmail.com>2024-02-20 20:04:43 +0100
committerRyan Horiguchi <ryan.horiguchi@gmail.com>2024-02-25 19:06:35 +0100
commita52e27d4f637854e81dfd51da3b29627f7374513 (patch)
tree9b696ac9d5d1aed456aac4daa6b76761ea7cce75 /nixos/modules/hardware
parente4af98e12764cb1b2c2c26dcf31edf5af1552162 (diff)
nixos/hardware/printers: fix empty ppdOptions
Diffstat (limited to 'nixos/modules/hardware')
-rw-r--r--nixos/modules/hardware/printers.nix27
1 files changed, 16 insertions, 11 deletions
diff --git a/nixos/modules/hardware/printers.nix b/nixos/modules/hardware/printers.nix
index 846ff6f3fb4f..4fb6a192cdd2 100644
--- a/nixos/modules/hardware/printers.nix
+++ b/nixos/modules/hardware/printers.nix
@@ -2,18 +2,23 @@
with lib;
let
cfg = config.hardware.printers;
- ppdOptionsString = options: optionalString (options != {})
- (concatStringsSep " "
- (mapAttrsToList (name: value: "-o '${name}'='${value}'") options)
- );
- ensurePrinter = p: ''
- ${pkgs.cups}/bin/lpadmin -p '${p.name}' -E \
- ${optionalString (p.location != null) "-L '${p.location}'"} \
- ${optionalString (p.description != null) "-D '${p.description}'"} \
- -v '${p.deviceUri}' \
- -m '${p.model}' \
- ${ppdOptionsString p.ppdOptions}
+
+ ensurePrinter = p: let
+ args = cli.toGNUCommandLineShell {} ({
+ p = p.name;
+ v = p.deviceUri;
+ m = p.model;
+ } // optionalAttrs (p.location != null) {
+ L = p.location;
+ } // optionalAttrs (p.description != null) {
+ D = p.description;
+ } // optionalAttrs (p.ppdOptions != {}) {
+ o = mapAttrsToList (name: value: "'${name}'='${value}'") p.ppdOptions;
+ });
+ in ''
+ ${pkgs.cups}/bin/lpadmin ${args} -E
'';
+
ensureDefaultPrinter = name: ''
${pkgs.cups}/bin/lpadmin -d '${name}'
'';