From 9422e37351c01679bcb7044b5ac9647344defc10 Mon Sep 17 00:00:00 2001 From: Sungbae Yoo Date: Thu, 24 Nov 2016 10:07:16 +0900 Subject: [PATCH] Add getting state and list of krate in krate-admin-cli Change-Id: Ib8a7a0c9c7d5207bddfc6703da66899ac570d7df Signed-off-by: Sungbae Yoo --- tools/cli/krate-admin-cli.cpp | 68 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/tools/cli/krate-admin-cli.cpp b/tools/cli/krate-admin-cli.cpp index 5b14e9a..bfd4790 100644 --- a/tools/cli/krate-admin-cli.cpp +++ b/tools/cli/krate-admin-cli.cpp @@ -76,12 +76,14 @@ static inline void usage(const std::string name) << " -q, --appinfo=krate show all applications in the krate" << std::endl << " -m, --krate-monitor monitor all krate events" << std::endl << " -n, --pkg-monitor monitor all package events in the krate" << std::endl - << " -l, --list show all krate instances" << std::endl + << " -i, --instance show all running instances" << std::endl + << " -s, --state=krate show the state of krate " << std::endl + << " -l, --list show the list of krate" << std::endl << " -h, --help show this" << std::endl << std::endl; } -int showKrateInstances() +int showInstances() { try { runtime::DirectoryIterator iter("/var/run/krate"), end; @@ -436,13 +438,65 @@ int monitorPkgEvent(const std::string& name) return 0; } +int showState(const std::string& name) +{ + krate_manager_h krateMgr; + krate_state_e state; + int ret; + + krate_manager_create(&krateMgr); + ret = krate_manager_get_krate_state(krateMgr, name.c_str(), &state); + krate_manager_destroy(krateMgr); + + if (ret == KRATE_ERROR_NO_DATA) { + std::cout << "none" << std::endl; + return 0; + } + + if (ret != KRATE_ERROR_NONE) { + std::cerr << "Failed to get state - " << name <= argc ? NULL : argv + optind); @@ -473,8 +527,14 @@ int main(int argc, char* argv[]) case 'n': ret = monitorPkgEvent(optarg); break; + case 's': + ret = showState(optarg); + break; case 'l': - ret = showKrateInstances(); + ret = showList(); + break; + case 'i': + ret = showInstances(); break; case 'h': usage(argv[0]); -- 2.7.4