summary refs log tree commit diff
path: root/modules/services/printing/cupsd.nix
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2010-04-25 18:27:00 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2010-04-25 18:27:00 +0000
commit226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008 (patch)
tree6777bd846977122b30933052848b398a4f19e8d4 /modules/services/printing/cupsd.nix
parenta5718503e5ce756caa9f1c50058fb128737276b3 (diff)
downloadnixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar.gz
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar.bz2
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar.lz
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar.xz
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.tar.zst
nixpkgs-226a9c8bbbe4be4bbd8e53cc5b55f8058c29d008.zip
Update CUPS module
* Create symlinks in cups-progs only if they aren't already here
* add tmpDir option

svn path=/nixos/trunk/; revision=21309
Diffstat (limited to 'modules/services/printing/cupsd.nix')
-rw-r--r--modules/services/printing/cupsd.nix35
1 files changed, 23 insertions, 12 deletions
diff --git a/modules/services/printing/cupsd.nix b/modules/services/printing/cupsd.nix
index e2107b61cf9..cbf67d391b5 100644
--- a/modules/services/printing/cupsd.nix
+++ b/modules/services/printing/cupsd.nix
@@ -15,11 +15,18 @@ let
   additionalBackends = pkgs.stdenv.mkDerivation {
     name = "additional-cups-backends";
     builder = pkgs.writeScript "additional-backends-builder.sh" ''
-      ${pkgs.coreutils}/bin/mkdir -p $out/lib/cups/backend
-      ${pkgs.coreutils}/bin/ln -s ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
+      PATH=${pkgs.coreutils}/bin
+      mkdir -p $out
+      if [[ ! -e ${pkgs.samba}/lib/cups/backend/smb ]]; then
+        mkdir -p $out/lib/cups/backend
+        ln -s ${pkgs.samba}/bin/smbspool $out/lib/cups/backend/smb
+      fi
 
       # Provide support for printing via HTTPS.
-      ${pkgs.coreutils}/bin/ln -s ipp $out/lib/cups/backend/https
+      if [[ ! -e ${pkgs.cups}/lib/cups/backend/https ]]; then
+        mkdir -p $out/lib/cups/backend
+        ln -s ipp $out/lib/cups/backend/https
+      fi
     '';
   };
 
@@ -30,11 +37,9 @@ let
   # cupsd.conf tells cupsd to use this tree.
   bindir = pkgs.buildEnv {
     name = "cups-progs";
-    paths =  cfg.drivers;
+    paths = cfg.drivers;
     pathsToLink = [ "/lib/cups" "/share/cups" ];
-    postBuild =  ''
-      ${cfg.bindirCmds}
-    '';
+    postBuild = cfg.bindirCmds;
   };
 
 in
@@ -44,7 +49,6 @@ in
   ###### interface
 
   options = {
-  
     services.printing = {
 
       enable = mkOption {
@@ -82,11 +86,18 @@ in
         '';
       };
 
+      tempDir = mkOption {
+        default = "/tmp";
+        example = "/tmp/cups";
+        description = ''
+          CUPSd temporary directory.
+        '';
+      };
     };
 
   };
 
-    
+
   ###### implementation
 
   config = mkIf config.services.printing.enable {
@@ -116,6 +127,7 @@ in
             mkdir -m 0755 -p ${logDir}
             mkdir -m 0700 -p /var/cache/cups
             mkdir -m 0700 -p /var/spool/cups
+            mkdir -m 0755 -p ${cfg.tempDir}
 
             # Make USB printers show up.
             ${modprobe}/sbin/modprobe usblp || true
@@ -125,7 +137,7 @@ in
       };
 
     services.printing.drivers = [ pkgs.cups pkgs.ghostscript additionalBackends ];
-    services.printing.cupsdConf = 
+    services.printing.cupsdConf =
       ''
         LogLevel info
 
@@ -146,7 +158,7 @@ in
         ErrorLog ${logDir}/error_log
         PageLog ${logDir}/page_log
 
-        TempDir /tmp
+        TempDir ${cfg.tempDir}
 
         Browsing On
         BrowseOrder allow,deny
@@ -195,5 +207,4 @@ in
       '';
 
   };
-  
 }