[Title] modify addResources() method.
authorTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 15 May 2013 08:36:21 +0000 (17:36 +0900)
committerTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 15 May 2013 08:40:32 +0000 (17:40 +0900)
        set layer in sequence
[Desc.]
[Issue]

Change-Id: I3bc187a2a25e7594c164f37b5e2635caf6784701

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

index 5b7c071..4587310 100755 (executable)
@@ -97,7 +97,9 @@ extends AbstractLauncher
     
     private List<String> excludes = new ArrayList<String>();
 
-    private String baseDir;
+    private String cwd;
+
+    private ResourceLayer lastLayer;
 
     /**
      * Entry point for cli main
@@ -151,19 +153,13 @@ extends AbstractLauncher
         final List<String> args = cmdLine.getArgList();
         logger.trace( "arguments :{}", args );
 
-        int nArgs = args.size();
-
-        baseDir = convertPath( "." );
-        if ( 1 < nArgs )
-        {
-            baseDir = convertPath( args.get( 1 ) );
-        }
+        cwd = convertPath( "." );
 
-        baseDir = "/home/tysonista/workspace/test11";
-        logger.debug( "Base directory :{}", baseDir );
+        logger.debug( "Base directory :{}", cwd );
 
         if (cmdLine.hasOption(OPT_NAME_OUTPUT)) {
-            output = FilenameUtil.getRelativePath(baseDir, cmdLine.getOptionValue(OPT_NAME_OUTPUT));
+            //TODO: set relative path.
+            output = FilenameUtil.getRelativePath(cwd, cmdLine.getOptionValue(OPT_NAME_OUTPUT));
         }
 
         logger.debug( "Output directory :{}", output );
@@ -172,13 +168,15 @@ extends AbstractLauncher
 
         BuildProcess buildProcess = new BuildProcess();
         ResourceLayer startLayer = new ResourceLayer(RESOURCE_LAYER_START, new VirtualFileHandler());
+        this.lastLayer = startLayer;
 
-        Resource[] resources = getResources(cmdLine, baseDir
+        Resource[] resources = getResources(cmdLine
+                                            , cwd
                                             , startLayer
                                             , null
                                             , excludes.toArray(new String[excludes.size()]));
 
-        generateBuilders(cmdLine, buildProcess, startLayer);
+        generateBuilders(cmdLine, buildProcess, this.lastLayer);
         if (buildProcess.getLastBuilder() != null) {
             logger.debug("start build process");
             buildProcess.build(resources);
@@ -207,7 +205,7 @@ extends AbstractLauncher
     public void generateBuilders(CommandLine cmdLine
                                             , BuildProcess buildProcess
                                             , ResourceLayer parentLayer) {
-        ResourceLayer lastLayer = parentLayer;
+        lastLayer = parentLayer;
 
         boolean isExcludeUIFW = cmdLine.hasOption(OPT_NAME_EXCLUDE_UI_FRAMEWORK);
         if (isExcludeUIFW) {
@@ -254,7 +252,7 @@ extends AbstractLauncher
     private void addLastbuilder(BuildProcess buildProcess, ResourceLayer parentLayer) {
         // add file output builder
         FileHandler fh = new StandardFileHandler();
-        fh.setCurrentWorkingDirectory(baseDir);
+        fh.setCurrentWorkingDirectory(cwd);
         ResourceLayer toFSLayer = new ResourceLayer(CopyBuilder.RESOURCE_LAYER_NAME
                                                         , parentLayer
                                                         , fh);
@@ -272,7 +270,9 @@ extends AbstractLauncher
         setIncludes(includes);
         setExcludes(excludes);
 
-        addResources(baseDir, layer, resources);
+        addResources(FilenameUtil.getRelativePath(this.cwd, this.cwd+File.separator+".")
+                        , layer
+                        , resources);
 
         if (cmdLine.hasOption(OPT_NAME_REFERENCE_PROJECT)) {
             ResourceLayer referenceLayer = new ResourceLayer(HybridAppCLIBuilder.RESOURCE_LAYER_REFERENCE_NAME
@@ -281,23 +281,31 @@ extends AbstractLauncher
             String refPath = cmdLine.getOptionValue(OPT_NAME_REFERENCE_PROJECT);
 
             addResources(refPath, referenceLayer, resources);
-            layer = referenceLayer;
+            lastLayer = referenceLayer;
         }
 
         return resources.toArray(new Resource[resources.size()]);
     }
 
-    private void addResources(String baseDir, ResourceLayer layer, List<Resource> resources) throws IOException {
+    /**
+     * Add resource for build
+     * @param relativeSrcDir relative directory including resources.
+     * @param layer {@link ResourceLayer}
+     * @param resources output resources.
+     * @throws IOException
+     */
+    private void addResources(String relativeSrcDir, ResourceLayer layer, List<Resource> resources) throws IOException {
         List<File> files = null;
-        files = FileUtil.findFiles(new File(baseDir), ".*", true);
+        String absoluteDir = this.cwd+ File.separator + relativeSrcDir;
+        files = FileUtil.findFiles(new File(absoluteDir), ".*", true);
         FileHandler fh = layer.getFileHandler();
 
 
         for (File file : files) {
-            String fileRelativePath = FilenameUtil.getRelativePath(baseDir, file.getPath());
+            String fileRelativePath = FilenameUtil.getRelativePath(this.cwd, file.getAbsolutePath());
 
-            if (!FilenameUtil.equals(file.getPath(), baseDir)
-                    && !filter.accept(baseDir, fileRelativePath)) {
+            if (!FilenameUtil.equals(file.getCanonicalPath(), this.cwd)
+                    && !filter.accept(this.cwd, fileRelativePath)) {
                 logger.debug("Ignore {}", fileRelativePath);
                 continue;
             }