OPT_LOGGING="-Dlog4j.configuration=log4j.xml"
OPT_PRG_NAME="-Dcli.name=$SCRIPT"
+OPT_CLI_HOME="-Dcli.home=$DIR_HOME"
READ_ARG="n"
esac
done
-OPT="$OPT_TRACE $OPT_LOGGING $OPT_PRG_NAME"
+OPT="$OPT_TRACE $OPT_LOGGING $OPT_PRG_NAME $OPT_CLI_HOME"
EXEC="java -cp $CLASSPATH $OPT $MAIN $@"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<profiles>
+ <profile name="develop">
+ </profile>
+</profiles>
<?xml version="1.0" encoding="UTF-8"?>
<profiles>
<profile name="test">
- <profileitem author="true" identifier="%a:%f:%w:%h:%t" key="/home/bylee/dev/cli/sample/samsung.devmode.sdk.cert.p12"/>
- <profileitem author="false" identifier="%a:%f:%w:%h:%t" key="/home/bylee/dev/cli/sample/samsung.devmode.sdk.cert.p12"/>
+ <profileitem author="true" identifier="%a:%f:%w:%h:%t" key="/home/tizen/cli/sample/samsung.devmode.sdk.cert.p12"/>
+ <profileitem author="false" identifier="%a:%f:%w:%h:%t" key="/home/tizen/cli/sample/samsung.devmode.sdk.cert.p12"/>
</profile>
</profiles>
import java.io.PrintStream;
import java.net.URL;
import java.nio.charset.Charset;
+import java.util.Arrays;
import java.util.Enumeration;
import java.util.Properties;
import org.tizen.common.file.FileHandler;
import org.tizen.common.file.FileHandler.Attribute;
import org.tizen.common.file.StandardFileHandler;
+import org.tizen.common.util.CollectionUtil;
import org.tizen.common.util.IOUtil;
import org.tizen.common.util.MapUtil;
import org.tizen.common.util.PropertyUtil;
this.help = new Help( getOptions() );
final ClassLoader cl = getClass().getClassLoader();
final String resourceName = getClass().getName().replace( '.', '/' ) + SUFFIX_CONFIG;
+
+ logger.trace( "Resource name :{}", resourceName );
try
{
final Enumeration<URL> iter = cl.getResources( resourceName );
while ( iter.hasMoreElements() )
{
final URL url = iter.nextElement();
+ logger.trace( "URL :{}", url );
final Properties properties = PropertyUtil.loadProperties( url.openStream() );
+ logger.debug( "Properties :{}", properties );
for ( final Object key : properties.keySet() )
{
String
printHelpDetail( String option )
{
- return getHelp().getHelpDetail( option );
+ final String detailStr = getHelp().getHelpDetail( option );
+ getPrompter().error( detailStr );
+ return detailStr;
}
/**
String
printHelp()
{
- String helpStr = getHelp().getHelp();
+ final String helpStr = getHelp().getHelp();
getPrompter().error( helpStr );
return helpStr;
}
if ( logger.isTraceEnabled() )
{
logger.trace( "System properties :\n{}", MapUtil.toString( System.getProperties() ) );
+ logger.trace( "Args :{}", CollectionUtil.concatenate( Arrays.asList( args ), "," ) );
}
-
try
{
this.cmd = parse( args );
{
printHelp();
+ logger.debug( "Help argument :{}", cmd.getArgList() );
+
for ( String keyword : cmd.getArgs() )
{
printHelpDetail( keyword );
}
catch ( final ParseException e )
{
+ logger.trace( "Invalid usage" );
printHelp();
+
+ logger.debug( "Help argument :{}", cmd.getArgList() );
+
+ for ( String keyword : cmd.getArgs() )
+ {
+ printHelpDetail( keyword );
+ }
}
catch ( final Exception e )
{
\r
import org.apache.commons.cli.HelpFormatter;\r
import org.apache.commons.cli.Options;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
\r
public class Help\r
{\r
+ \r
+ /**\r
+ * Logger for this instance\r
+ */\r
+ protected Logger logger = LoggerFactory.getLogger( getClass() );\r
+ \r
/**\r
* Program name property key\r
*/\r
protected static final String PROP_PRG = "cli.name";\r
\r
+ /**\r
+ * {@link Options} for Help print-out\r
+ */\r
protected final Options opts;\r
\r
+ /**\r
+ * <p>\r
+ * keyword - help mapping\r
+ * </p>\r
+ */\r
protected HashMap<String, String> keyword2help = new HashMap<String, String>();\r
\r
- public Help( Options opts )\r
+ /**\r
+ * Constructor with {@link Options}\r
+ * \r
+ * @param opts {@link Options}\r
+ */\r
+ public\r
+ Help(\r
+ final Options opts\r
+ )\r
{\r
this.opts = opts;\r
}\r
return opts;\r
}\r
\r
- public void addHelpDetail( String keyword, String help )\r
+ /**\r
+ * Add <code>help</code> contents for <code>keyword</code>\r
+ * \r
+ * @param keyword keyword\r
+ * @param help contents\r
+ */\r
+ public\r
+ void\r
+ addHelpDetail(\r
+ final String keyword,\r
+ final String help\r
+ )\r
{\r
keyword2help.put( keyword.toLowerCase(), help );\r
+ \r
+ logger.info( "Help Detail added for {} :\n{}", keyword, help );\r
}\r
\r
/**\r
- * return execution command for usage\r
+ * <p>\r
+ * Return execution command for usage\r
+ * </p>\r
* \r
* @return execution command\r
*/\r
}\r
\r
\r
+ /**\r
+ * <p>\r
+ * Return default usage\r
+ * </p>\r
+ * \r
+ * @return usage\r
+ */\r
public String getHelp()\r
{\r
final HelpFormatter formatter = new HelpFormatter();\r
return help;\r
}\r
\r
+ /**\r
+ * <p>\r
+ * Return detail help for <code>keyword</code>\r
+ * </p>\r
+ * \r
+ * @param keyword keyword\r
+ * @return detail\r
+ */\r
public String\r
- getHelpDetail( final String keyword )\r
+ getHelpDetail(\r
+ final String keyword\r
+ )\r
{\r
if ( null == keyword )\r
{\r
package org.tizen.cli.exec.sign;
import static org.tizen.common.util.FilenameUtil.addTailingPath;
-import static org.tizen.common.util.StringUtil.nvl;
+import static org.tizen.common.util.ObjectUtil.nvl;
import java.io.IOException;
import java.text.MessageFormat;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
import org.tizen.cli.exec.AbstractLauncher;
import org.tizen.cli.exec.ILaunchOptions;
import org.tizen.common.core.command.Prompter;
opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_INCLUDE ).withDescription( DESC_INCLUDE ).create( OPT_INCLUDE.substring( 0, 1 ) ) );
opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_EXCLUDE ).withDescription( DESC_EXCLUDE ).create( OPT_EXCLUDE.substring( 0, 1 ) ) );
- opts.addOption( OptionBuilder.hasArg().isRequired().withLongOpt( OPT_PROFILE ).withDescription( DESC_PROFILE ).create( OPT_PROFILE.substring( 0, 1 ) ) );
+ opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_PROFILE ).withDescription( DESC_PROFILE ).create( OPT_PROFILE.substring( 0, 1 ) ) );
return opts;
}
)
throws Exception
{
+
+ String profileName = cmdLine.getOptionValue( OPT_PROFILE );
+ logger.debug( "Profile option :{}", profileName );
+ if ( null == profileName )
+ {
+ throw new ParseException( "profile option is requred" );
+ }
+
final List<String> args = cmdLine.getArgList();
logger.trace( "arguments :{}", args );
}
}
- String profileName = cmdLine.getOptionValue( OPT_PROFILE );
- logger.debug( "Profile option :{}", profileName );
-
String profilesFilePath = null;
final int index = profileName.indexOf( SEPARATOR_PROFILE );
String
getDefaultProfilesFilePath()
{
+
final String cliHome =
nvl( System.getProperty( PROP_CLI_HOME ), System.getenv( ENV_CLI_HOME ) );
\r
Ex.)\r
web-signing -p develop:/home/tizen/profiles.xml\r
+ web-signing -p develop\r
\r
* profiles file format\r
It is xml-formatted file. Its schema( xml schema ) exists in $CLI_HOME/doc/schema/profiles.xsd\r