From: hyunsik.noh Date: Wed, 4 Dec 2013 07:48:13 +0000 (+0900) Subject: CLI: Add TargetUtil class. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F67%2F13367%2F3;p=sdk%2Ftools%2Fcli.git CLI: Add TargetUtil class. Change-Id: Ie30e5c758f85184eeec13150013f6e7c0ddbbb4f Signed-off-by: hyunsik.noh --- diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/InstallCLI.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/InstallCLI.java index 1158998..4723eb7 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/InstallCLI.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/InstallCLI.java @@ -36,14 +36,14 @@ import org.tizen.ncli.ide.subcommands.InstallCLICommand; * @author Hyunsik Noh{@literal } (S-core) */ @TizenSubCommand(name="install" , usage="Install the package to target") -public class InstallCLI extends CLIWithSdbLib{ +public class InstallCLI extends AbstractCLI{ private Logger log = LoggerFactory.getLogger(getClass()); @Option(name = "--target", usage = "Target to install the package") private String target; @Override - void executeWithSdbLib() { + public void execute() { log.trace("Execute InstallCLI..."); InstallCLICommand command = new InstallCLICommand(); command.setWorkingDir(workingDir == null ? currentWorkspacePath : workingDir); diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/Main.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/Main.java index f11705d..6309793 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/Main.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/Main.java @@ -29,6 +29,7 @@ import org.tizen.ncli.core.TizenSubCommand; import org.tizen.ncli.core.TizenSubCommandHandler; import org.tizen.ncli.core.collection.TreeNode; import org.tizen.ncli.ide.messages.TizenCLIMessages; +import org.tizen.ncli.ide.util.TargetUtil; /** * This class is entry point of Tizen New Command Line Interface. All the command line argument would be parsed and then @@ -116,6 +117,8 @@ public class Main { } } catch (Exception e) { e.printStackTrace(); + } finally { + TargetUtil.finalizeSmartDeviceBridge(); } errorWriter.flush(); 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 b150c67..a4de22d 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 @@ -32,8 +32,8 @@ import org.tizen.common.sdb.command.SdbCommand; import org.tizen.common.util.HostUtil; import org.tizen.common.util.IOUtil; import org.tizen.ncli.ide.messages.TizenCLIMessages; +import org.tizen.ncli.ide.util.TargetUtil; import org.tizen.sdblib.IDevice; -import org.tizen.sdblib.SmartDevelopmentBridge; import org.tizen.sdblib.service.SyncResult; import org.tizen.sdblib.service.SyncService; @@ -83,37 +83,8 @@ public class InstallCLICommand extends AbstractSubCommand { return null; } - public void setTarget(String target) { - log.trace("set target"); - IDevice[] targets = SmartDevelopmentBridge.getBridge().getDevices(); - if(targets.length == 0) { - System.out.println(TizenCLIMessages.NO_CONNECTED_TARGETS); - log.error(TizenCLIMessages.NO_CONNECTED_TARGETS); - } else { - if(target == null) { - if(targets.length == 1) { - this.target = targets[0]; - log.info("target is " + this.target); - } else { - System.out.println(TizenCLIMessages.MANY_CONNECTED_TARGETS); - log.error(TizenCLIMessages.MANY_CONNECTED_TARGETS);; - } - } else { - boolean isExist = false; - for(IDevice t: targets) { - if(target.equals(t.getSerialNumber())) { - this.target = t; - log.info("target is " + this.target); - isExist = true; - break; - } - } - if(!isExist) { - System.out.println(NLS.bind(TizenCLIMessages.NO_NAMED_TARGETS, target)); - log.error(NLS.bind(TizenCLIMessages.NO_NAMED_TARGETS, target)); - } - } - } + public void setTarget(String targetName) { + target = TargetUtil.getTarget(targetName); } private boolean isValidPackage() { diff --git a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/CLIWithSdbLib.java b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java similarity index 50% rename from org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/CLIWithSdbLib.java rename to org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java index ef22c05..b4e6e27 100644 --- a/org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/CLIWithSdbLib.java +++ b/org.tizen.ncli.ide/src/org/tizen/ncli/ide/util/TargetUtil.java @@ -22,27 +22,29 @@ * Contributors: * - S-Core Co., Ltd */ -package org.tizen.ncli.ide.shell; +package org.tizen.ncli.ide.util; +import org.eclipse.osgi.util.NLS; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tizen.common.core.application.InstallPathConfig; import org.tizen.common.util.HostUtil; +import org.tizen.ncli.ide.messages.TizenCLIMessages; +import org.tizen.sdblib.IDevice; import org.tizen.sdblib.SmartDevelopmentBridge; + /** - * Implemented functions of CLI options which need to use SdbLib. + * provides util methods related with sdb. * * @author Hyunsik Noh{@literal } (S-core) */ -public abstract class CLIWithSdbLib extends AbstractCLI{ - - protected Logger log = LoggerFactory.getLogger(getClass()); - - public CLIWithSdbLib() { +public class TargetUtil { + private static final Logger log = LoggerFactory.getLogger(TargetUtil.class); + static { initSdb(); } - public void initSdb() { + public static void initSdb() { log.trace("initialize sdb"); String sdbPath = InstallPathConfig.getSDBPath(); if (!HostUtil.exists(sdbPath)) { @@ -61,19 +63,49 @@ public abstract class CLIWithSdbLib extends AbstractCLI{ } } - public void finalizeSmartDeviceBridge() { + public static void finalizeSmartDeviceBridge() { log.trace("finalize sdb"); SmartDevelopmentBridge.disconnectBridge(); } - - @Override - public void execute() { - try{ - executeWithSdbLib(); - } finally{ - finalizeSmartDeviceBridge(); + + /** + * Returns IDevice object from connected targets. + * @param targetName + * @return IDevice + */ + public static IDevice getTarget(String targetName) { + IDevice target = null; + log.trace("set target"); + IDevice[] targets = SmartDevelopmentBridge.getBridge().getDevices(); + if(targets.length == 0) { + System.out.println(TizenCLIMessages.NO_CONNECTED_TARGETS); + log.error(TizenCLIMessages.NO_CONNECTED_TARGETS); + } else { + if(targetName == null) { + if(targets.length == 1) { + target = targets[0]; + log.info("target is " + target); + } else { + System.out.println(TizenCLIMessages.MANY_CONNECTED_TARGETS); + log.error(TizenCLIMessages.MANY_CONNECTED_TARGETS);; + } + } else { + boolean isExist = false; + for(IDevice t: targets) { + if(targetName.equals(t.getSerialNumber())) { + target = t; + log.info("target is " + target); + isExist = true; + break; + } + } + if(!isExist) { + System.out.println(NLS.bind(TizenCLIMessages.NO_NAMED_TARGETS, targetName)); + log.error(NLS.bind(TizenCLIMessages.NO_NAMED_TARGETS, targetName)); + } + } } + return target; } - - abstract void executeWithSdbLib(); + }