Add res pkgids to env 73/284573/4
authorSangyoon Jang <jeremy.jang@samsung.com>
Mon, 21 Nov 2022 01:18:01 +0000 (10:18 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Wed, 4 Jan 2023 06:54:31 +0000 (15:54 +0900)
Change-Id: I920242fa6eda3bf634f527f83b46b89c3bd0eef0
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/lib/common/inc/key.h
src/lib/common/src/launchpad_common.c

index 8889cca..cde7c3f 100644 (file)
@@ -52,6 +52,7 @@ extern "C" {
 #define AUL_K_MOUNT_GLOBAL_RES_DIR     "__AUL_MOUNT_GLOBAL_RES_DIR__"
 #define AUL_K_MOUNT_ALLOWED_RES_DIR    "__AUL_MOUNT_ALLOWED_RES_DIR__"
 #define AUL_K_ENABLED_LIGHT_USER       "__AUL_ENABLED_LIGHT_USER__"
+#define AUL_K_MOUNT_RES_PKGIDS          "__AUL_MOUNT_RES_PKGIDS__"
 
 #ifdef __cplusplus
 }
index 0db3125..d474ebc 100644 (file)
@@ -1553,6 +1553,21 @@ static int __mount_dir(const char *srcs[], size_t srcs_len, const char *dest)
        return 0;
 }
 
+static void __set_mount_pkgids_to_env(const char *pkgids[], size_t len)
+{
+       int i;
+       char val[PATH_MAX] = { 0 };
+
+       for (i = 0; i < len; i++)
+               snprintf(val + strlen(val), sizeof(val) - strlen(val), "%s:",
+                               pkgids[i]);
+
+       val[strlen(val) - 1] = '\0';
+
+       /* RES_PKGIDS=org.tizen.res1:org.tizen.res2:org.tizen.res3 */
+       setenv("RES_PKGIDS", val, 1);
+}
+
 int _mount_res_dir(const char *root_path, bundle *kb)
 {
        const char **val;
@@ -1577,6 +1592,13 @@ int _mount_res_dir(const char *root_path, bundle *kb)
                return -1;
        }
 
+       val = bundle_get_str_array(kb, AUL_K_MOUNT_RES_PKGIDS, &len);
+       if (val) {
+               __set_mount_pkgids_to_env(val, len);
+       } else if (get_last_result() != BUNDLE_ERROR_KEY_NOT_AVAILABLE) {
+               _E("invalid mount info");
+               return -1;
+       }
 
        return 0;
 }