From 392507d50513a3b16f184ff6603070a4d3969555 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 29 Aug 2007 22:55:03 +0000
Subject: [PATCH] Update the CreateRCScript tool so that it provides the ability to specify the user that the server should run as (invoked via "su"), and also lets the user specify the JAVA_HOME and JAVA_ARGS settings that should be used.

---
 opends/src/server/org/opends/server/core/DirectoryServer.java |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/DirectoryServer.java b/opends/src/server/org/opends/server/core/DirectoryServer.java
index d5662b3..bde7bd0 100644
--- a/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -98,6 +98,7 @@
 import org.opends.messages.MessageDescriptor;
 import org.opends.messages.Message;
 import static org.opends.messages.CoreMessages.*;
+import static org.opends.messages.ToolMessages.*;
 import org.opends.server.monitors.BackendMonitor;
 import org.opends.server.monitors.ConnectionHandlerMonitor;
 import org.opends.server.schema.AttributeTypeSyntax;
@@ -282,6 +283,11 @@
    * Windows Service.
    */
   private static int START_AS_DETACH_CALLED_FROM_WINDOWS_SERVICE = 102;
+  /**
+   * The server must be started as detached process and should not produce any
+   * output.
+   */
+  private static int START_AS_DETACH_QUIET = 103;
 
   // The policy to use regarding single structural objectclass enforcement.
   private AcceptRejectWarn singleStructuralClassPolicy;
@@ -8990,6 +8996,7 @@
   {
     // Define the arguments that may be provided to the server.
     BooleanArgument checkStartability = null;
+    BooleanArgument quietMode         = null;
     BooleanArgument windowsNetStart   = null;
     BooleanArgument displayUsage      = null;
     BooleanArgument fullVersion       = null;
@@ -9058,6 +9065,11 @@
       argParser.addArgument(noDetach);
 
 
+      quietMode = new BooleanArgument("quiet", 'Q', "quiet",
+                                      INFO_DESCRIPTION_QUIET.get());
+      argParser.addArgument(quietMode);
+
+
       displayUsage = new BooleanArgument("help", 'H', "help",
                                          INFO_DSCORE_DESCRIPTION_USAGE.get());
       argParser.addArgument(displayUsage);
@@ -9317,9 +9329,12 @@
 
           if (noDetach.isPresent())
           {
-            MultiOutputStream multiStream =
-                 new MultiOutputStream(System.out, serverOutStream);
-            serverOutStream = new PrintStream(multiStream);
+            if (! quietMode.isPresent())
+            {
+              MultiOutputStream multiStream =
+                   new MultiOutputStream(System.out, serverOutStream);
+              serverOutStream = new PrintStream(multiStream);
+            }
           }
 
           System.setOut(serverOutStream);
@@ -9533,6 +9548,8 @@
 
     BooleanArgument noDetach =
       (BooleanArgument)argParser.getArgumentForLongID("nodetach");
+    BooleanArgument quietMode =
+      (BooleanArgument)argParser.getArgumentForLongID("quiet");
     BooleanArgument windowsNetStart =
       (BooleanArgument)argParser.getArgumentForLongID("windowsnetstart");
 
@@ -9618,6 +9635,10 @@
         {
           returnValue = START_AS_NON_DETACH;
         }
+        else if (quietMode.isPresent())
+        {
+          returnValue = START_AS_DETACH_QUIET;
+        }
         else
         {
           returnValue = START_AS_DETACH;

--
Gitblit v1.10.0