summary refs log tree commit diff
path: root/upstart-jobs/cupsd.nix
diff options
context:
space:
mode:
authorMarc Weber <marco-oweber@gmx.de>2009-03-06 12:26:46 +0000
committerMarc Weber <marco-oweber@gmx.de>2009-03-06 12:26:46 +0000
commitd0733953e1f61f0d59beaf459ad3773413d7b767 (patch)
treee48f9547cdf9246e6148e934ef6ffb90ef8cc96f /upstart-jobs/cupsd.nix
parent4d0761beb22ef28d007ecf21b69eec01fb0568fd (diff)
downloadnixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar.gz
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar.bz2
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar.lz
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar.xz
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.tar.zst
nixpkgs-d0733953e1f61f0d59beaf459ad3773413d7b767.zip
Convert "printing", CUPS daemon
svn path=/nixos/branches/fix-style/; revision=14384
Diffstat (limited to 'upstart-jobs/cupsd.nix')
-rw-r--r--upstart-jobs/cupsd.nix94
1 files changed, 63 insertions, 31 deletions
diff --git a/upstart-jobs/cupsd.nix b/upstart-jobs/cupsd.nix
index ced164a1308..7f5529e6f75 100644
--- a/upstart-jobs/cupsd.nix
+++ b/upstart-jobs/cupsd.nix
@@ -1,4 +1,26 @@
-{config, pkgs, modprobe}:
+{pkgs, config, ...}:
+
+###### interface
+let
+  inherit (pkgs.lib) mkOption mkIf;
+
+  options = {
+    services = {
+      printing = {
+
+        enable = mkOption {
+          default = false;
+          description = "
+            Whether to enable printing support through the CUPS daemon.
+          ";
+        };
+
+      };
+    };
+  };
+in
+
+###### implementation
 
 let
 
@@ -7,6 +29,8 @@ let
 
   inherit (pkgs) cups;
 
+  modprobe = config.system.sbin.modprobe;
+
 
   # Here we can enable additional backends, filters, etc. that are not
   # part of CUPS itself, e.g. the SMB backend is part of Samba.  Since
@@ -101,37 +125,45 @@ let
 
 in
 
-{
-  name = "cupsd";
-
-  extraPath = [cups];
 
-  extraEtc = [
-    # CUPS expects the following files in its ServerRoot.
-    { source = "${cups}/etc/cups/mime.convs";
-      target = "cups/mime.convs";
-    }
-    { source = "${cups}/etc/cups/mime.types";
-      target = "cups/mime.types";
-    }
+mkIf config.services.pulseaudio.enable {
+  require = [
+    options
   ];
-  
-  job = ''
-    description "CUPS printing daemon"
-
-    start on network-interfaces/started
-    stop on network-interfaces/stop
-
-    start script
-        mkdir -m 0755 -p ${logDir}
-        mkdir -m 0700 -p /var/cache/cups
-        mkdir -m 0700 -p /var/spool/cups
 
-        # Make USB printers show up.
-        ${modprobe}/sbin/modprobe usblp || true
-    end script
-
-    respawn ${cups}/sbin/cupsd -c ${cupsdConfig} -F
-  '';
-  
+  services = {
+    extraJobs = [{
+      name = "cupsd";
+
+      extraPath = [cups];
+
+      extraEtc = [
+        # CUPS expects the following files in its ServerRoot.
+        { source = "${cups}/etc/cups/mime.convs";
+          target = "cups/mime.convs";
+        }
+        { source = "${cups}/etc/cups/mime.types";
+          target = "cups/mime.types";
+        }
+      ];
+      
+      job = ''
+        description "CUPS printing daemon"
+
+        start on network-interfaces/started
+        stop on network-interfaces/stop
+
+        start script
+            mkdir -m 0755 -p ${logDir}
+            mkdir -m 0700 -p /var/cache/cups
+            mkdir -m 0700 -p /var/spool/cups
+
+            # Make USB printers show up.
+            ${modprobe}/sbin/modprobe usblp || true
+        end script
+
+        respawn ${cups}/sbin/cupsd -c ${cupsdConfig} -F
+      '';
+    }];
+  };
 }