From c4f51a4351db054f0be3e387db27321b777f561c Mon Sep 17 00:00:00 2001 From: "Sabera Djelti (sdi2)" Date: Fri, 21 Nov 2014 14:04:36 +0100 Subject: [PATCH] list once global package with pkgcmd -l Change-Id: I1ac3d2a8f58acdd5fb0acada05642f5100eeeb15 Signed-off-by: Baptiste DURAND Signed-off-by: Sabera Djelti (sdi2) --- client/src/pkgmgr.c | 7 +++++++ tool/pkg_cmd.c | 44 +++++++++++++++++++++++--------------------- tool/pkg_info.c | 1 + 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/client/src/pkgmgr.c b/client/src/pkgmgr.c index ec56c5b..a67336f 100755 --- a/client/src/pkgmgr.c +++ b/client/src/pkgmgr.c @@ -2842,6 +2842,13 @@ API int pkgmgr_pkginfo_is_readonly(pkgmgr_pkginfo_h handle, bool *readonly) return ret; } +API int pkgmgr_pkginfo_is_for_all_users(pkgmgr_pkginfo_h handle, bool *for_all_users) +{ + int ret = 0; + ret = pkgmgrinfo_pkginfo_is_for_all_users(handle, for_all_users); + return ret; +} + API int pkgmgr_pkginfo_is_accessible(pkgmgr_pkginfo_h handle, bool *accessible) { int ret = 0; diff --git a/tool/pkg_cmd.c b/tool/pkg_cmd.c index 52e5ee3..2455128 100755 --- a/tool/pkg_cmd.c +++ b/tool/pkg_cmd.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -46,6 +47,7 @@ #define PKG_TOOL_VERSION "0.1" #define APP_INSTALLATION_PATH_RW tzplatform_getenv(TZ_USER_APP) +#define MAX_QUERY_LEN 4096 static int __process_request(uid_t uid); static void __print_usage(); @@ -448,6 +450,10 @@ static int __pkgmgr_list_cb (const pkgmgr_pkginfo_h handle, void *user_data) char *pkg_type = NULL; char *pkg_version = NULL; char *pkg_label = NULL; + char *icon_path = NULL; + bool for_all_users = 0; + + pkgmgrinfo_uidinfo_t *uid_info = (pkgmgrinfo_uidinfo_t *) handle; ret = pkgmgr_pkginfo_get_pkgid(handle, &pkgid); if (ret == -1) { @@ -470,8 +476,13 @@ static int __pkgmgr_list_cb (const pkgmgr_pkginfo_h handle, void *user_data) return ret; } - printf("pkg_type [%s]\tpkgid [%s]\tname [%s]\tversion [%s]\n", pkg_type, pkgid, pkg_label, pkg_version); + ret = pkgmgr_pkginfo_is_for_all_users(handle, &for_all_users); + if (ret == -1) { + printf("Failed to get pkgmgr_pkginfo_is_for_all_users\n"); + return ret; + } + printf("%s\tpkg_type [%s]\tpkgid [%s]\tname [%s]\tversion [%s]\n", for_all_users ? "system apps" : "user apps ", pkg_type, pkgid, pkg_label, pkg_version); return ret; } @@ -831,17 +842,13 @@ static int __process_request(uid_t uid) if (data.pkg_type[0] == '\0') { ret = 0; if (uid != GLOBAL_USER) { - printf(" = USER APPS =\n"); ret = pkgmgr_pkginfo_get_usr_list(__pkgmgr_list_cb, NULL, uid); - if (ret == -1) { - printf("No User application Found\n"); + } else { + ret = pkgmgr_pkginfo_get_list(__pkgmgr_list_cb, NULL); } - } - printf(" = SYSTEM APPS =\n"); - ret = pkgmgr_pkginfo_get_list(__pkgmgr_list_cb, NULL); - if (ret == -1) - printf("Failed to get package list\n"); - break; + if (ret == -1) + printf("no packages found\n"); + break; } else { pkgmgrinfo_pkginfo_filter_h handle; ret = pkgmgrinfo_pkginfo_filter_create(&handle); @@ -856,18 +863,13 @@ static int __process_request(uid_t uid) break; } if (uid != GLOBAL_USER) { - printf(" = USER APPS =\n"); - if (pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(handle, __pkgmgr_list_cb, NULL,uid) != PMINFO_R_OK) { - printf("No User application Found\n"); - pkgmgrinfo_pkginfo_filter_destroy(handle); - } + ret = pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(handle, __pkgmgr_list_cb, NULL, uid); + } else { + ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, __pkgmgr_list_cb, NULL); } - printf(" = SYSTEM APPS =\n"); - ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, __pkgmgr_list_cb, NULL); - if (ret != PMINFO_R_OK) - printf("Failed to get package filter list\n"); - - pkgmgrinfo_pkginfo_filter_destroy(handle); + if (ret != PMINFO_R_OK) + printf("no package filter list\n"); + pkgmgrinfo_pkginfo_filter_destroy(handle); break; } diff --git a/tool/pkg_info.c b/tool/pkg_info.c index e4f92d9..55d2d40 100755 --- a/tool/pkg_info.c +++ b/tool/pkg_info.c @@ -644,6 +644,7 @@ static int __add_pkg_filter(uid_t uid) int val = -1; int count = 0; pkgmgrinfo_pkginfo_filter_h handle; + ret = pkgmgrinfo_pkginfo_filter_create(&handle); if (ret > 0) { printf("pkginfo filter handle create failed\n"); -- 2.7.4