From 1b4c811d41dfe359a042ba1adf66eb66949d902a Mon Sep 17 00:00:00 2001 From: Evgeny Egorochkin Date: Sat, 18 Sep 2010 11:30:04 +0000 Subject: [PATCH] Added AMule daemon service svn path=/nixos/trunk/; revision=23848 --- modules/module-list.nix | 1 + modules/services/networking/amuled.nix | 72 ++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 modules/services/networking/amuled.nix diff --git a/modules/module-list.nix b/modules/module-list.nix index 29c2101b707..9113d249ae8 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -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 diff --git a/modules/services/networking/amuled.nix b/modules/services/networking/amuled.nix new file mode 100644 index 00000000000..5e60a824619 --- /dev/null +++ b/modules/services/networking/amuled.nix @@ -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 ]; + + }; + +}