[Title] Add output option (not implement process yet)
authorTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 15 May 2013 05:24:25 +0000 (14:24 +0900)
committerTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 15 May 2013 06:09:28 +0000 (15:09 +0900)
[Desc.]
[Issue]

Change-Id: Id8b617cdcc817a2631fcccb25f4caf10b01c6b79

org.tizen.cli/src/org/tizen/cli/exec/web/build/Main.java
org.tizen.cli/src/org/tizen/cli/exec/wgt/Main.java

index 4115c28..5b7c071 100755 (executable)
@@ -39,10 +39,12 @@ import org.tizen.common.FactoryWithArgument;
 import org.tizen.common.builder.BuildProcess;
 import org.tizen.common.builder.Resource;
 import org.tizen.common.builder.ResourceLayer;
+import org.tizen.common.builder.core.CopyBuilder;
 import org.tizen.common.file.FileHandler;
 import org.tizen.common.file.FileHandler.Attribute;
 import org.tizen.common.file.Filter;
 import org.tizen.common.file.SimpleFileFilter;
+import org.tizen.common.file.StandardFileHandler;
 import org.tizen.common.file.VirtualFileHandler;
 import org.tizen.common.file.filter.WildCardFilterFactory;
 import org.tizen.common.util.FileUtil;
@@ -51,7 +53,6 @@ import org.tizen.common.util.IOUtil;
 import org.tizen.web.builder.HybridAppCLIBuilder;
 import org.tizen.web.builder.JavaScriptMinifier;
 import org.tizen.web.builder.UIFWBuilder;
-import org.tizen.web.builder.WorkingCopyBuilder;
 import org.tizen.web.common.WebConstant;
 
 /**
@@ -63,7 +64,7 @@ public class
 Main
 extends AbstractLauncher
 {
-    private String dest=".build"; //default destination directory
+    private String output = WebConstant.TEMP_BUILD_DIRECTORY; //default output directory
 
     private SimpleFileFilter filter = new SimpleFileFilter(true);
     private FactoryWithArgument<Filter, String> filterFactory = new WildCardFilterFactory();
@@ -72,6 +73,7 @@ extends AbstractLauncher
     private static final String OPT_NAME_EXCLUDE_UI_FRAMEWORK = "exclude-uifw";
     private static final String OPT_NAME_EXCLUDE_UI_FRAMEWORK_SHORT = "euf";
     private static final String OPT_NAME_EXCLUDE = "exclude";
+    private static final String OPT_NAME_OUTPUT = "output";
     private static final String OPT_NAME_REFERENCE_PROJECT = "ref-prj";
     private static final String OPT_NAME_REFERENCE_PROJECT_SHORT = "rp";
 
@@ -80,6 +82,7 @@ extends AbstractLauncher
                                                                 "If you want to use ui framework in target, set "+
                                                                 "--"+OPT_NAME_EXCLUDE_UI_FRAMEWORK_SHORT;
     private static final String OPT_DESC_EXCLUDE = "Add exclude file pattern";
+    private static final String OPT_DESC_OUTPUT = "";
     private static final String OPT_DESC_REFERENCE_PROJECT = "Set reference project";
 
     //for build framework(org.tizen.common.builder)
@@ -94,6 +97,8 @@ extends AbstractLauncher
     
     private List<String> excludes = new ArrayList<String>();
 
+    private String baseDir;
+
     /**
      * Entry point for cli main
      * 
@@ -126,6 +131,7 @@ extends AbstractLauncher
         opts.addOption( OptionBuilder.withLongOpt( OPT_NAME_EXCLUDE_UI_FRAMEWORK ).withDescription( OPT_DESC_EXCLUDE_UI_FRAMEWORK ).create( OPT_NAME_EXCLUDE_UI_FRAMEWORK_SHORT ) );
         opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_NAME_EXCLUDE ).withDescription( OPT_DESC_EXCLUDE ).create( OPT_NAME_EXCLUDE.substring( 0, 1 ) ) );
         opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_NAME_REFERENCE_PROJECT ).withDescription( OPT_DESC_REFERENCE_PROJECT ).create( OPT_NAME_REFERENCE_PROJECT_SHORT ) );
+        opts.addOption( OptionBuilder.hasArg().withLongOpt( OPT_NAME_OUTPUT ).withDescription( OPT_DESC_OUTPUT ).create() );
 
         return opts;
     }
@@ -147,14 +153,20 @@ extends AbstractLauncher
 
         int nArgs = args.size();
 
-        String baseDir = convertPath( "." );
+        baseDir = convertPath( "." );
         if ( 1 < nArgs )
         {
             baseDir = convertPath( args.get( 1 ) );
         }
+
+        baseDir = "/home/tysonista/workspace/test11";
         logger.debug( "Base directory :{}", baseDir );
 
-        logger.debug( "Output directory :{}", dest );
+        if (cmdLine.hasOption(OPT_NAME_OUTPUT)) {
+            output = FilenameUtil.getRelativePath(baseDir, cmdLine.getOptionValue(OPT_NAME_OUTPUT));
+        }
+
+        logger.debug( "Output directory :{}", output );
 
         initExcludes(cmdLine);
 
@@ -241,8 +253,12 @@ extends AbstractLauncher
 
     private void addLastbuilder(BuildProcess buildProcess, ResourceLayer parentLayer) {
         // add file output builder
-        WorkingCopyBuilder toFSBuilder = new WorkingCopyBuilder(WebConstant.TEMP_BUILD_DIRECTORY
-                                                                            , parentLayer);
+        FileHandler fh = new StandardFileHandler();
+        fh.setCurrentWorkingDirectory(baseDir);
+        ResourceLayer toFSLayer = new ResourceLayer(CopyBuilder.RESOURCE_LAYER_NAME
+                                                        , parentLayer
+                                                        , fh);
+        CopyBuilder toFSBuilder = new CopyBuilder(output, toFSLayer);
         buildProcess.addBuilder(toFSBuilder);
     }
 
@@ -294,8 +310,8 @@ extends AbstractLauncher
                 dir = fileRelativePath;
             }
 
-            if (fh instanceof VirtualFileHandler) {
-                ((VirtualFileHandler) fh).makeDirectory(dir, true);
+            if (!fh.is(dir, Attribute.EXISTS)) {
+                fh.makeDirectory(dir, true);
             }
 
             InputStream is = null;
index 233f30f..92c61c8 100755 (executable)
@@ -239,8 +239,8 @@ extends AbstractLauncher
                 dir = filePath;
             }
 
-            if (fh instanceof VirtualFileHandler) {
-                ((VirtualFileHandler) fh).makeDirectory(dir, true);
+            if (!fh.is(dir, Attribute.EXISTS)) {
+                fh.makeDirectory(dir, true);
             }
 
             InputStream is = null;