CLI: Fix to find Tizen project packages. 74/13674/4
authorhyunsik.noh <hyunsik.noh@samsung.com>
Thu, 12 Dec 2013 04:54:27 +0000 (13:54 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Thu, 12 Dec 2013 06:12:46 +0000 (22:12 -0800)
Fix to find Tizen project packages.
Fix to check success for InstallCLI.

Change-Id: Icd697ed6320cf82480559dc28bfdf34f76731f3a
Signed-off-by: hyunsik.noh <hyunsik.noh@samsung.com>
org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.properties
org.tizen.ncli.ide/src/org/tizen/ncli/ide/subcommands/InstallCLICommand.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java

index d4f03ce..9c301e2 100644 (file)
@@ -49,11 +49,13 @@ public class TizenCLIMessages extends NLS {
     //INST(INSTALL)
     public static String INST_CANNOT_TRANSFER_PACKAGE;
     
-    public static String INST_NO_PACKAGES;
+    public static String INST_NO_PACKAGE;
     public static String INST_MANY_PACKAGES;
     
     public static String INST_FAIL_TRANSFER_PACKAGE;
     public static String INST_FAIL_INVALID_PACKAGE;
+    public static String INST_SUCCESS_PACKAGE;
+    public static String INST_FAIL_PACKAGE;
     
     //UNINST(UNINSTALL)
     public static String UNINST_UNREMOVABLE_PACKAGE;
index 073360f..433daa4 100644 (file)
@@ -35,8 +35,10 @@ SIGN_NO_CONFIG_PROFILES = There is no default profiles value in config file.
 
 INST_CANNOT_TRANSFER_PACKAGE = Can not transfer {0} package.
  
-INST_NO_PACKAGES = There is no package.
+INST_NO_PACKAGE = There is no package.
 INST_MANY_PACKAGES =There are many packages.
+INST_SUCCESS_PACKAGE = Tizen application is successfully installed.
+INST_FAIL_PACKAGE = Failed to install Tizen application.
 
 INST_FAIL_TRANSFER_PACKAGE = [Fail] Fail install. There is the problem to transfer package.
 INST_FAIL_INVALID_PACKAGE = [Fail Fail install. There is the problem about package.
index 18be304..4b140a5 100644 (file)
@@ -26,9 +26,13 @@ package org.tizen.ncli.ide.subcommands;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.eclipse.osgi.util.NLS;
 import org.tizen.common.TizenPlatformConstants;
+import org.tizen.common.launch.LaunchMessages;
+import org.tizen.common.util.FileUtil;
 import org.tizen.common.util.HostUtil;
 import org.tizen.common.util.IOUtil;
 import org.tizen.ncli.ide.CLIConstant;
@@ -51,7 +55,7 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
     private String srcPath = null;
     private String ext = null;
     
-    private String searchPkgCommand = "ls %s | grep .%s";
+    private String searchPkgCommand = "ls %s";
     private String installCommand = TizenPlatformConstants.PKG_TOOL_INSTALL_COMMAND;
     
     public InstallCLICommand() {
@@ -64,11 +68,14 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         } catch (IOException e) {
             log.error("Fail to get work directory canonical path");
         }
-        progressLog.info("[Start] Install Tizen Package:");
         if(target != null) {
             if(isValidPackage()) {
                 if(tranferPackage(srcPath, dirPKG)) {
-                    installPackage(ext, srcPath, dirPKG);
+                    if(installPackage(ext, srcPath, dirPKG)) {
+                        progressLog.info(TizenCLIMessages.INST_SUCCESS_PACKAGE);
+                    } else {
+                        progressLog.info(TizenCLIMessages.INST_FAIL_PACKAGE);
+                    }
                 } else {
                     progressLog.info(TizenCLIMessages.INST_FAIL_TRANSFER_PACKAGE);
                 }
@@ -78,7 +85,6 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         } else {
             progressLog.info(TizenCLIMessages.FAIL_TARGET);
         }
-        progressLog.info("[End] Install Tizen Package");
         return null;
     }
     
@@ -91,21 +97,23 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         log.trace("=validate package=");
         boolean result = true;
         
-        String[] tpks = getPackages(CLIConstant.NATIVE_PKG_EXT);
-        int tpkCnt = (tpks != null ? tpks.length : 0);
+        List<String> tpks = new ArrayList<String>();
+        List<String> wgts = new ArrayList<String>();
+        getPackages(tpks, wgts);
         
-        String[] wgts = getPackages(CLIConstant.WEB_PKG_EXT);
-        int wgtCnt = (wgts != null ? wgts.length : 0);
+        int tpkCnt = tpks.size();
+        int wgtCnt = wgts.size();
         int pkgCnt = tpkCnt + wgtCnt;
+        
         if(pkgCnt == 1 ) {
             dirPKG = TizenPlatformConstants.getAppTmpDirectory(target);
             if(tpkCnt == 1) {
                //native install
-                srcPath = tpks[0];
+                srcPath = tpks.get(0);
                 ext = CLIConstant.NATIVE_PKG_EXT;
             } else {
                 //web install
-                srcPath = wgts[0];
+                srcPath = wgts.get(0);
                 ext = CLIConstant.WEB_PKG_EXT;
             }
             log.debug("ext: " + ext);
@@ -113,8 +121,8 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         } else {
             result = false;
             if(pkgCnt == 0) {
-                progressLog.info(TizenCLIMessages.INST_NO_PACKAGES);
-                log.error(TizenCLIMessages.INST_NO_PACKAGES);
+                progressLog.info(TizenCLIMessages.INST_NO_PACKAGE);
+                log.error(TizenCLIMessages.INST_NO_PACKAGE);
             } else {
                 progressLog.info(TizenCLIMessages.INST_MANY_PACKAGES);
                 log.error(TizenCLIMessages.INST_MANY_PACKAGES);
@@ -123,29 +131,45 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         return result;
     }
     
-    private String[] getPackages(String type) {
+    private void getPackages(List<String>tpks, List<String> wgts) {
         log.trace("=get packages=");
-        String[] pkgs = null;
-        String getPKGCommand =String.format(searchPkgCommand, workDir, type);
+        
+        String tpk = CLIConstant.NATIVE_PKG_EXT;
+        String wgt = CLIConstant.WEB_PKG_EXT;
+        String ext = null;
+        
+        String getPKGCommand =String.format(searchPkgCommand, workDir);
         log.debug("[Get Packages Command]: " + getPKGCommand);
         String returnPkgs = HostUtil.returnExecute(getPKGCommand);
         if(returnPkgs.length() != 0) {
-            pkgs = returnPkgs.split("\n");
+            String[] items = returnPkgs.split("\n");
+            for(String item : items) {
+                ext = FileUtil.getFileExtension(item);
+                if(ext != null) {
+                    if(tpk.equals(ext)) {
+                        tpks.add(item);
+                    } else if(wgt.equals(ext)) {
+                        wgts.add(item);
+                    }
+                }
+            }
         }
-        return pkgs;
     }
     
     private boolean tranferPackage(String srcPath, String dirPKG) {
         log.trace("=transfer package=");
+        progressLog.info(LaunchMessages.TRANSFER_PACKAGE);
         boolean result = false;
         SyncService sync = null;
         SyncResult syncSuccess;
         
         try {
             sync = target.getSyncService();
-            syncSuccess = sync.push( workDir + File.separatorChar + srcPath, target.getFileEntry( dirPKG ) );
+            String srcFilePath = workDir + File.separatorChar + srcPath;
+            syncSuccess = sync.push( srcFilePath, target.getFileEntry( dirPKG ) );
             if(syncSuccess.isOk()) {
                 result = true;
+                progressLog.info(NLS.bind(LaunchMessages.TRANSFERRED_PACKAGE, srcFilePath, dirPKG));
             } else {
                 progressLog.info(NLS.bind((TizenCLIMessages.INST_CANNOT_TRANSFER_PACKAGE), srcPath));
                 log.error(NLS.bind((TizenCLIMessages.INST_CANNOT_TRANSFER_PACKAGE), srcPath));
@@ -160,14 +184,22 @@ public class InstallCLICommand extends AbstractSubCommand<Install> {
         return result;
     }
     
-    private String installPackage(String ext, String srcPath, String dirPKG) {
+    private boolean installPackage(String ext, String srcPath, String dirPKG) {
         log.trace("=install package=");
-        String result = null;
-        
+        progressLog.info(LaunchMessages.INSTALL_PACKAGE);
+        boolean result = false;
         String installCmd = String.format(installCommand, ext, dirPKG + "/" + srcPath);
         log.debug("[Install Command]: " + installCmd);
-        result = TargetUtil.getDefault().returnExecuteCommand(target, installCmd);
-        progressLog.info(result);
+        
+        String returnResult = TargetUtil.getDefault().returnExecuteCommand(target, installCmd);
+        log.debug(returnResult);
+        String[] tokens = returnResult.split("\\s+");
+        for(String token : tokens) {
+            if("val[ok]".equals(token)) {
+                result = true;
+                break;
+            }
+        }
         return result;
     }
 }
index 7eb0c71..ad325c1 100644 (file)
@@ -139,7 +139,7 @@ public class TargetUtil {
         String defaultTimeout = config.getValue(ConfigConstant.DEFAULT_SDB_TIMEOUT);
         int timeout = (defaultTimeout == null ? 60000 : Integer.parseInt(defaultTimeout));
         SdbCommand sdbCommand = new SdbCommand(target, null, null, timeout);
-        log.info("Execute " + command + "via Sdb");
+        log.info("Execute " + command + " via Sdb");
         return sdbCommand.returnExecuteCommand(command);
     }
 }