From 0343e48cfcb3b8dca62ca8dee97e14f314c55edf Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Thu, 6 Mar 2014 11:05:20 +0900 Subject: [PATCH] Add a task to copy configuration files to user's HOME dir from data dir for multi-user environment. Original Author: MinJeong Kim Change-Id: I697c2aae1a2a1f402dce8cb1b6090bf16ebd92c7 --- configure.ac | 2 ++ src/bin/e_config.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/configure.ac b/configure.ac index 6145210..0b8969e 100644 --- a/configure.ac +++ b/configure.ac @@ -648,6 +648,8 @@ e_extra_features+="-D_F_BORDER_HOOK_PATCH_ " e_extra_features+="-D_F_COMP_LAYER_ " # add use dlog e_extra_features+="-D_F_USE_DLOG_ " +# enable to copy the directory for configuration files +e_extra_features+="-D_F_COPY_FROM_DATA_DIR_ " have_extra_features=no AC_ARG_ENABLE(extra_features, diff --git a/src/bin/e_config.c b/src/bin/e_config.c index c6127dc..79dfe2b 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -155,6 +155,9 @@ e_config_init(void) { /* use system if no user profile config */ e_prefix_data_concat_static(buf, "data/config/profile.cfg"); +#ifdef _F_COPY_FROM_DATA_DIR_ + e_prefix_data_concat_static(buf, "config/e/config/profile.cfg"); +#endif ef = eet_open(buf, EET_FILE_MODE_READ); } } @@ -1655,6 +1658,18 @@ e_config_domain_load(const char *domain, E_Config_DD *edd) if (data) return data; } } +#ifdef _F_COPY_FROM_DATA_DIR_ + if(data = e_config_domain_system_load(domain, edd)) + { + char cmd[PATH_MAX]; + e_prefix_data_snprintf(buf, sizeof(buf), "config"); + + snprintf(cmd, sizeof(cmd), "/bin/cp -rf %s/* %s/.e", buf, getenv("HOME")); + system(cmd); + + return e_config_domain_load(domain, edd); + } +#endif return e_config_domain_system_load(domain, edd); } @@ -1667,6 +1682,10 @@ e_config_domain_system_load(const char *domain, E_Config_DD *edd) e_prefix_data_snprintf(buf, sizeof(buf), "data/config/%s/%s.cfg", _e_config_profile, domain); +#ifdef _F_COPY_FROM_DATA_DIR_ + e_prefix_data_snprintf(buf, sizeof(buf), "config/e/config/%s/%s.cfg", + _e_config_profile, domain); +#endif ef = eet_open(buf, EET_FILE_MODE_READ); if (ef) { -- 2.7.4