Author: egorochkin
Date: Sat Sep 18 11:30:04 2010
New Revision: 23848
URL: https://svn.nixos.org/websvn/nix/?rev=23848&sc=1

Log:
Added AMule daemon service

Added:
   nixos/trunk/modules/services/networking/amuled.nix
Modified:
   nixos/trunk/modules/module-list.nix

Modified: nixos/trunk/modules/module-list.nix
==============================================================================
--- nixos/trunk/modules/module-list.nix Sat Sep 18 11:26:35 2010        (r23847)
+++ nixos/trunk/modules/module-list.nix Sat Sep 18 11:30:04 2010        (r23848)
@@ -78,6 +78,7 @@
   ./services/network-filesystems/nfs-kernel.nix
   ./services/network-filesystems/openafs-client/default.nix
   ./services/network-filesystems/samba.nix
+  ./services/networking/amuled.nix
   ./services/networking/avahi-daemon.nix
   ./services/networking/bind.nix
   ./services/networking/bitlbee.nix

Added: nixos/trunk/modules/services/networking/amuled.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixos/trunk/modules/services/networking/amuled.nix  Sat Sep 18 11:30:04 
2010        (r23848)
@@ -0,0 +1,72 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+  cfg = config.services.amule;
+in
+
+{
+
+  ###### interface
+
+  options = {
+  
+    services.amule = {
+
+      enable = mkOption {
+        default = false;
+        description = ''
+          Whether to run the AMule daemon. You need to manually run "amuled 
--ec-config" to configure the service for the first time.
+        '';
+      };
+
+      dataDir = mkOption {
+        default = ''/home/${cfg.user}/'';
+        description = ''
+          The directory holding configuration, incoming and temporary files.
+        '';
+      };
+
+      user = mkOption {
+        default = "amule";
+        description = ''
+          The user the AMule daemon should run as.
+        '';
+      };
+
+    };
+
+  };
+  
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    users.extraUsers = singleton
+      { name = cfg.user;
+        description = "AMule daemon";
+      };
+
+    jobs.amuled =
+      { description = "AMule daemon";
+
+        startOn = "ip-up";
+
+        preStart = ''
+            mkdir -p ${cfg.dataDir}
+            chown ${cfg.user} ${cfg.dataDir}
+        '';
+
+        exec = ''
+            ${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${cfg.user} \
+                -c 'HOME="${cfg.dataDir}" ${pkgs.amuleDaemon}/bin/amuled'
+        '';
+      };
+
+    environment.systemPackages = [ pkgs.amuleDaemon ];
+
+  };
+  
+}
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to