summary refs log tree commit diff
path: root/modules/services/misc/disnix.nix
diff options
context:
space:
mode:
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
           '';
       };