From 23cf3a45e6f0d58a864013a113ad89a419be7c7f Mon Sep 17 00:00:00 2001 From: "hyunsik.noh" Date: Thu, 12 Dec 2013 13:54:27 +0900 Subject: [PATCH] CLI: Fix to find Tizen project packages. Fix to find Tizen project packages. Fix to check success for InstallCLI. Change-Id: Icd697ed6320cf82480559dc28bfdf34f76731f3a Signed-off-by: hyunsik.noh --- .../tizen/ncli/ide/messages/TizenCLIMessages.java | 4 +- .../ncli/ide/messages/TizenCLIMessages.properties | 4 +- .../ncli/ide/subcommands/InstallCLICommand.java | 78 +++++++++++++++------- .../src/org/tizen/ncli/ide/util/TargetUtil.java | 2 +- 4 files changed, 62 insertions(+), 26 deletions(-) diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.java index d4f03ce..9c301e2 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.java @@ -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; diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.properties b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.properties index 073360f..433daa4 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.properties +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/messages/TizenCLIMessages.properties @@ -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. diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/subcommands/InstallCLICommand.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/subcommands/InstallCLICommand.java index 18be304..4b140a5 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/subcommands/InstallCLICommand.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/subcommands/InstallCLICommand.java @@ -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 { 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 { } 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 { } else { progressLog.info(TizenCLIMessages.FAIL_TARGET); } - progressLog.info("[End] Install Tizen Package"); return null; } @@ -91,21 +97,23 @@ public class InstallCLICommand extends AbstractSubCommand { log.trace("=validate package="); boolean result = true; - String[] tpks = getPackages(CLIConstant.NATIVE_PKG_EXT); - int tpkCnt = (tpks != null ? tpks.length : 0); + List tpks = new ArrayList(); + List wgts = new ArrayList(); + 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 { } 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 { return result; } - private String[] getPackages(String type) { + private void getPackages(Listtpks, List 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 { 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; } } diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java index 7eb0c71..ad325c1 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java @@ -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); } } -- 2.7.4