[Title] InstallManager can support non-interactive cli mode.
authoryongsung1.kim <yongsung1.kim@samsung.com>
Tue, 9 Jul 2013 08:24:51 +0000 (17:24 +0900)
committeryongsung1.kim <yongsung1.kim@samsung.com>
Tue, 9 Jul 2013 08:24:51 +0000 (17:24 +0900)
[Desc.] When use installmanager by cli mode, it can support '-ni'
option(non-interactive). in this case, '-ni' option must have '-passwd'
option.
[Issue] redmine #9474

Change-Id: I3145cc16c535f4e7f6311e9daeed3d62800cefaa

InstallManager_java/src/org/tizen/installmanager/core/Installer.java
InstallManager_java/src/org/tizen/installmanager/core/Options.java
InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java

index de103aa..9a443a0 100644 (file)
@@ -236,9 +236,9 @@ public class Installer {
                
                if (Options.interactive) {
                        env.put("INTERACTIVE", "true");
-                       env.put("SUPASS", Options.suPass);
                } else {
                        env.put("INTERACTIVE", "false");
+                       env.put("SUPASS", Options.suPass);
                }
                
                return env;
index 855db8b..e76779c 100644 (file)
@@ -28,7 +28,6 @@
 
 package org.tizen.installmanager.core;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
@@ -122,12 +121,16 @@ public class Options {
         */
        public static boolean snapshot = false;
        
+       /**
+        * Use cli mode
+        */
        public static String repository = null;
        public static String imageFilePath = null;
        public static String snapshotPath = null;
        public static ServerType serverType = null;
        public static String distribution = null;
        public static String targetDir = null;
+       public static String sdkDataPath = null;
        
        public static boolean isNetwork = true;
        
@@ -374,6 +377,7 @@ public class Options {
                
        private static void workCliOptions(String[] args) {
                ArrayList<String> argArray = new ArrayList<String>();
+
                for (String t : args) {
                        if (!t.equalsIgnoreCase("-install") && !t.equalsIgnoreCase("-remove")) {
                                argArray.add(t);                                
@@ -381,8 +385,16 @@ public class Options {
                }
                
                Iterator<String> argIter = argArray.iterator();
-
+               while (argIter.hasNext()) {
+                       if (argIter.next().equalsIgnoreCase("-path")) {
+                               argIter.remove();
+                               argIter.next();
+                               argIter.remove();
+                       }
+               }
+               
                // set repository
+               argIter = argArray.iterator();
                while (argIter.hasNext()) {
                        if (argIter.next().equalsIgnoreCase("-r")) {
                                argIter.remove();
@@ -421,6 +433,15 @@ public class Options {
                                argIter.remove();
                        }
                }
+               
+               argIter = argArray.iterator();
+               while (argIter.hasNext()) {
+                       if (argIter.next().equalsIgnoreCase("-w")) {
+                               argIter.remove();
+                               sdkDataPath = argIter.next();
+                               argIter.remove();
+                       }
+               }
 
                // set distribution
                argIter = argArray.iterator();
@@ -438,8 +459,13 @@ public class Options {
                        if (argIter.next().equalsIgnoreCase("-p")) {
                                argIter.remove();
                                while (argIter.hasNext()) {
-                                       packages.add(argIter.next());
-                                       argIter.remove();
+                                       String pkg = argIter.next();
+                                       if (!pkg.startsWith("-")) {
+                                               packages.add(pkg);
+                                               argIter.remove();
+                                       } else {
+                                               break;                                          
+                                       }
                                }
                        }
                }
@@ -468,6 +494,7 @@ public class Options {
                                                        if (!argIter.next().equalsIgnoreCase("-passwd")) {
                                                                throw new IMFatalException(ErrorCode.WRONG_OPTION);
                                                        } else {
+                                                               argIter.remove();
                                                                if (argIter.hasNext()) {
                                                                        suPass = argIter.next();
                                                                        interactive = false;
@@ -478,8 +505,12 @@ public class Options {
                                                        }
                                                }
                                        } else if (Platform.isWindows()) {
-                                               interactive = false;
-                                       }                                       
+                                               interactive = true;
+                                       } else if (Platform.isMacOS()) {
+                                               interactive = true;
+                                       } else {
+                                               throw new IMFatalException(ErrorCode.UNSUPPORTED_PLATFORM);
+                                       }
                                } else {
                                        throw new IMFatalException(ErrorCode.WRONG_OPTION);
                                }
index e6b258f..5caa49d 100644 (file)
@@ -468,9 +468,6 @@ public class InstallManagerWindow extends ApplicationWindow {
                                        Registry.targetPath = controller.getInstallPath();
                                        Registry.saveSDKInfo(Registry.targetPath);
                                        
-                                       
-                                       
-                                       
                                        InstallManager.getInstance().initPackageList();
 
                                        if (!installable) {