summary refs log tree commit diff
path: root/modules/services/misc/disnix.nix
diff options
context:
space:
mode:
authorSander van der Burg <s.vanderburg@tudelft.nl>2010-11-01 17:33:54 +0000
committerSander van der Burg <s.vanderburg@tudelft.nl>2010-11-01 17:33:54 +0000
commit9359ebf9753fc0c8133a3b358a2734a6c6cf1fac (patch)
tree5b3c2744c6f88524f3dba6b182d600f19ace6692 /modules/services/misc/disnix.nix
parentedb5870deb7e53070eed1057378125b5bce394c4 (diff)
downloadnixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar.gz
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar.bz2
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar.lz
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar.xz
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.tar.zst
nixpkgs-9359ebf9753fc0c8133a3b358a2734a6c6cf1fac.zip
Implemented an option to enable to DisnixWebService on Apache Tomcat
svn path=/nixos/trunk/; revision=24560
Diffstat (limited to 'modules/services/misc/disnix.nix')
-rw-r--r--modules/services/misc/disnix.nix30
1 files changed, 23 insertions, 7 deletions
diff --git a/modules/services/misc/disnix.nix b/modules/services/misc/disnix.nix
index 09b9cf8fe08..3688f8c3fc7 100644
--- a/modules/services/misc/disnix.nix
+++ b/modules/services/misc/disnix.nix
@@ -6,7 +6,14 @@ with pkgs.lib;
 let
 
   cfg = config.services.disnix;
-
+  
+  disnix_activation_scripts = pkgs.disnix_activation_scripts.override (origArgs: {
+    enableApacheWebApplication = config.services.httpd.enable;
+    enableAxis2WebService = config.services.tomcat.axis2.enable;
+    enableEjabberdDump = config.services.ejabberd.enable;
+    enableMySQLDatabase = config.services.mysql.enable;
+    enableTomcatWebApplication = config.services.tomcat.enable;
+  });
 in
 
 {
@@ -20,7 +27,12 @@ in
       enable = mkOption {
         default = false;
         description = "Whether to enable Disnix";
-      };        
+      };
+      
+      useWebServiceInterface = mkOption {
+        default = false;
+	description = "Whether to enable the DisnixWebService interface running on Apache Tomcat";
+      };
 
     };
     
@@ -36,6 +48,13 @@ in
     services.dbus.enable = true;
     services.dbus.packages = [ pkgs.disnix ];
 
+    services.tomcat.enable = cfg.useWebServiceInterface;
+    services.tomcat.javaOpts = "${optionalString cfg.useWebServiceInterface "-Djava.library.path=${pkgs.libmatthew_java}/lib/jni"} ";
+    services.tomcat.sharedLibs = []
+                                 ++ optional cfg.useWebServiceInterface "${pkgs.DisnixWebService}/share/java/DisnixConnection.jar"
+				 ++ optional cfg.useWebServiceInterface "${pkgs.dbus_java}/share/java/dbus.jar";
+    services.tomcat.webapps = [] ++ optional cfg.useWebServiceInterface pkgs.DisnixWebService;
+
     users.extraGroups = singleton
       { name = "disnix";
         gid = config.ids.gids.disnix;
@@ -47,11 +66,8 @@ in
         startOn = "started dbus";
 
         script =
-          ''                
-            export PATH=/var/run/current-system/sw/bin:/var/run/current-system/sw/sbin
-            export HOME=/root
-	
-            ${pkgs.disnix}/bin/disnix-service --activation-modules-dir=${pkgs.disnix_activation_scripts}/libexec/disnix/activation-scripts
+          ''
+            ${pkgs.disnix}/bin/disnix-service --activation-modules-dir=${disnix_activation_scripts}/libexec/disnix/activation-scripts
           '';
       };