commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siegfried Goeschl (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (EXEC-36) CommandLine does not work with double quote or single quote correctly
Date Mon, 12 Jan 2009 10:32:00 GMT

    [ https://issues.apache.org/jira/browse/EXEC-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662927#action_12662927
] 

sgoeschl edited comment on EXEC-36 at 1/12/09 2:30 AM:
----------------------------------------------------------------

Here is your re-formatted snippet

{noformat} 
@Test
public void shouldHandleTheDoubelQuote() throws Exception 
{ 
  String commandline = "./script/jrake cruise:publish_installers " 
    + "INSTALLER_VERSION=unstable_2_1 " 
    + "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" " 
    + "INSTALLER_DOWNLOAD_SERVER='something'" 
    + "WITHOUT_HELP_DOC=true";
    
  CommandLine line = CommandLine.parse(commandline); 
  String[] args = line.getArguments(); 
  assertThat(args[0], is("cruise:publish_installers")); 
  assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1")); 
  assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\"")); 
  assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'")); 
  assertThat(args[4], is("WITHOUT_HELP_DOC=true")); 
}
{noformat} 

Some quick notes

+) args[0] should be "./script/jrake" and not "cruise:publish_installers"
+) mixing and matching singe and double quotes using CommandLine.parse() is not recommended
(http://commons.apache.org/exec/faq.html)
+) I will add a test case to see how to generate a valid command line in your case

      was (Author: sgoeschl):
    Here is your re-formatted snippet

@Test
public void shouldHandleTheDoubelQuote() throws Exception 
{ 
  String commandline = "./script/jrake cruise:publish_installers " 
    + "INSTALLER_VERSION=unstable_2_1 " 
    + "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" " 
    + "INSTALLER_DOWNLOAD_SERVER='something'" 
    + "WITHOUT_HELP_DOC=true";
    
  CommandLine line = CommandLine.parse(commandline); 
  String[] args = line.getArguments(); 
  assertThat(args[0], is("cruise:publish_installers")); 
  assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1")); 
  assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\"")); 
  assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'")); 
  assertThat(args[4], is("WITHOUT_HELP_DOC=true")); 
}

Some quick notes

+) args[0] should be "./script/jrake" and not "cruise:publish_installers"
+) mixing and matching singe and double quotes using CommandLine.parse() is not recommended
(http://commons.apache.org/exec/faq.html)
+) I will add a test case to see how to generate a valid command line in your case
  
> CommandLine does not work with double quote or single quote correctly
> ---------------------------------------------------------------------
>
>                 Key: EXEC-36
>                 URL: https://issues.apache.org/jira/browse/EXEC-36
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.0
>         Environment: Ubuntu 704, JDK1.6
>            Reporter: Kai Hu
>            Assignee: Siegfried Goeschl
>            Priority: Critical
>
> Please review and run the following junit test, either apache ant or apache exec does
not handle the qoute in the arguments correctly.
>    @Test
>     public void shouldHandleTheDoubelQuote() throws Exception {
>         String commandline = "./script/jrake cruise:publish_installers "
>                 + "INSTALLER_VERSION=unstable_2_1 "
>                 + "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" "
>                 + "INSTALLER_DOWNLOAD_SERVER='something'"
>                 + "WITHOUT_HELP_DOC=true";
>         CommandLine line = CommandLine.parse(commandline);
>         String[] args  = line.getArguments();
>         assertThat(args[0], is("cruise:publish_installers"));
>         assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1"));
>         assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\""));
>         assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'"));
>         assertThat(args[4], is("WITHOUT_HELP_DOC=true"));
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message