Add create/destroy in krate-admin-cli 16/128516/1 accepted/tizen/unified/20170511.173232 submit/tizen/20170511.062549
authorSungbae Yoo <sungbae.yoo@samsung.com>
Wed, 10 May 2017 08:50:31 +0000 (17:50 +0900)
committerSungbae Yoo <sungbae.yoo@samsung.com>
Wed, 10 May 2017 08:50:31 +0000 (17:50 +0900)
Change-Id: Ia088a4402b4814a9f4bc11ef65e9fb1ff2b4c181
Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
tools/cli/krate-admin-cli.cpp

index 39e65ee..65d0161 100644 (file)
@@ -49,7 +49,7 @@
 
 #include "session.h"
 
-
+#define DEFAULT_SETUP_WIZARD "org.tizen.krate-setup-wizard"
 #define DEFAULT_SHELL "/bin/bash"
 
 typedef std::pair<std::string, int> NamespacePair;
@@ -74,6 +74,8 @@ static inline void usage(const std::string name)
                          << "Run a program in the krate" << std::endl
                          << std::endl
                          << "Options :" << std::endl
+                         << "   -c, --create=name   create a new krate by given name" << std::endl
+                         << "   -d, --destroy=name  destroy the krate" << std::endl
                          << "   -a, --attach=krate  execute command in the krate" << std::endl
                          << "   -p, --pkginfo=krate show all packages in the krate" << std::endl
                          << "   -q, --appinfo=krate show all applications in the krate" << std::endl
@@ -177,6 +179,21 @@ void launchProcess(runtime::User& user, char** args)
        ::exit(EXIT_FAILURE);
 }
 
+int showDefaultSetupWizard(const std::string& mode, const std::string& name)
+{
+       app_control_h app_control;
+       app_control_create(&app_control);
+       app_control_set_app_id(app_control, DEFAULT_SETUP_WIZARD);
+       app_control_add_extra_data(app_control, "mode", mode.c_str());
+       app_control_add_extra_data(app_control, "krate", name.c_str());
+       app_control_send_launch_request(app_control, NULL, NULL);
+       app_control_destroy(app_control);
+
+       std::cout << "Please do next steps on GUI" << std::endl;
+
+       return 0;
+}
+
 int attachToKrate(const std::string& name, char* args[])
 {
        try {
@@ -496,10 +513,12 @@ int main(int argc, char* argv[])
        int opt = 0, index, ret = 0;
 
        struct option options[] = {
+               {"create", required_argument, 0, 'c'},
+               {"destroy", required_argument, 0, 'd'},
                {"attach", required_argument, 0, 'a'},
-               {"instance", no_argument, 0, 'l'},
+               {"instance", no_argument, 0, 'i'},
                {"list", no_argument, 0, 'l'},
-               {"state", required_argument, 0, 'l'},
+               {"state", required_argument, 0, 's'},
                {"pkginfo", required_argument, 0, 'p'},
                {"appinfo", required_argument, 0, 'q'},
                {"krate-monitor", no_argument, 0, 'm'},
@@ -513,8 +532,14 @@ int main(int argc, char* argv[])
                return EXIT_SUCCESS;
        }
 
-       while ((opt = getopt_long(argc, argv, "a:p:q:mn:s:ilh", options, &index)) != -1) {
+       while ((opt = getopt_long(argc, argv, "c:d:a:p:q:mn:s:ilh", options, &index)) != -1) {
                switch (opt) {
+               case 'c':
+                       ret = showDefaultSetupWizard("create", optarg);
+                       break;
+               case 'd':
+                       ret = showDefaultSetupWizard("remove", optarg);
+                       break;
                case 'a':
                        ret = attachToKrate(optarg, optind >= argc ? NULL : argv + optind);
                        break;