You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bu...@apache.org on 2004/05/14 17:55:02 UTC

DO NOT REPLY [Bug 28984] New: - Optional ccm tasks only run on windows, patch for linux compatibility

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=28984>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28984

Optional ccm tasks only run on windows, patch for linux compatibility

           Summary: Optional ccm tasks only run on windows, patch for linux
                    compatibility
           Product: Ant
           Version: 1.6.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Optional Tasks
        AssignedTo: dev@ant.apache.org
        ReportedBy: staplin@digitalglobe.com


The arguments passed to the underlying ccm command are formatted such that they
only work with a Windows installation of ccm (ccm uses '/' on windows and '-' on
linux). 

The following 4 diffs (against ant 1.6.1 source) make the ccm tasks more
platform independent.

Continuus.java:

@@ -17,6 +17,8 @@
 
 package org.apache.tools.ant.taskdefs.optional.ccm;
 
+import java.io.File;
+
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
@@ -75,8 +77,8 @@
      */
     protected final String getCcmCommand() {
         String toReturn = ccmDir;
-        if (!toReturn.equals("") && !toReturn.endsWith("/")) {
-            toReturn += "/";
+        if (!toReturn.equals("") && !toReturn.endsWith(File.separator)) {
+            toReturn += File.separator;
         }
 
         toReturn += CCM_EXE;
@@ -128,5 +130,14 @@
      */
     public static final String COMMAND_DEFAULT_TASK = "default_task";
 
-
+    /**
+     * The system OS dependent character denoting a command line argument flag 
to ccm.
+     * For windows, this is '/', but others this is '-'
+     */
+    protected static final char ARGUMENT_FLAG_CHAR;
+    static {
+        String os = System.getProperty("os.name");
+        boolean windowsOs = os.indexOf("Windows") != -1;
+        ARGUMENT_FLAG_CHAR = windowsOs ? '/' : '-';




CCMCheck.java:

@@ -188,13 +188,13 @@
     }
 
     /**
-     * -comment flag -- comment to attach to the file
+     * comment flag -- comment to attach to the file
      */
-    public static final String FLAG_COMMENT = "/comment";
+    public static final String FLAG_COMMENT = ARGUMENT_FLAG_CHAR+"comment";
 
     /**
-     *  -task flag -- associate checkout task with task
+     *  task flag -- associate checkout task with task
      */
-    public static final String FLAG_TASK = "/task";
+    public static final String FLAG_TASK = ARGUMENT_FLAG_CHAR+"task";
 }




CCMCreateTask.java:

@@ -234,32 +234,32 @@
     /**
      * /comment -- comments associated to the task
      */
-    public static final String FLAG_COMMENT = "/synopsis";
+    public static final String FLAG_COMMENT = ARGUMENT_FLAG_CHAR+"synopsis";
 
     /**
-     *  /platform flag -- target platform
+     *  platform flag -- target platform
      */
-    public static final String FLAG_PLATFORM = "/plat";
+    public static final String FLAG_PLATFORM = ARGUMENT_FLAG_CHAR+"plat";
 
     /**
-     * /resolver flag
+     * resolver flag
      */
-    public static final String FLAG_RESOLVER = "/resolver";
+    public static final String FLAG_RESOLVER = ARGUMENT_FLAG_CHAR+"resolver";
 
     /**
-     * /release flag
+     * release flag
      */
-    public static final String FLAG_RELEASE = "/release";
+    public static final String FLAG_RELEASE = ARGUMENT_FLAG_CHAR+"release";
 
     /**
-     * /release flag
+     * release flag
      */
-    public static final String FLAG_SUBSYSTEM = "/subsystem";
+    public static final String FLAG_SUBSYSTEM = ARGUMENT_FLAG_CHAR+"subsystem";
 
     /**
-     *  -task flag -- associate checkout task with task
+     *  task flag -- associate checkout task with task
      */
-    public static final String FLAG_TASK = "/task";
+    public static final String FLAG_TASK = ARGUMENT_FLAG_CHAR+"task";
 
 
     // implementation of org.apache.tools.ant.taskdefs.ExecuteStreamHandler
interface



CCMReconfigure.java:

@@ -138,20 +138,20 @@
 
 
     /**
-     * /recurse --
+     * recurse --
      */
-    public static final String FLAG_RECURSE = "/recurse";
+    public static final String FLAG_RECURSE = ARGUMENT_FLAG_CHAR+"recurse";
 
     /**
-     * /recurse --
+     * recurse --
      */
-    public static final String FLAG_VERBOSE = "/verbose";
+    public static final String FLAG_VERBOSE = ARGUMENT_FLAG_CHAR+"verbose";
 
 
     /**
-     *  /project flag -- target project
+     *  project flag -- target project
      */
-    public static final String FLAG_PROJECT = "/project";
+    public static final String FLAG_PROJECT = ARGUMENT_FLAG_CHAR+"project";
 
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org