e config - fix config fallback handling - it was broken

loaded the wrong filename pattern due to a change i made ages to it
from file.N.cfg to file.cfg.N.

@fix
This commit is contained in:
Carsten Haitzler 2022-05-16 13:59:29 +01:00
parent a1600a137f
commit 027a810e84
1 changed files with 34 additions and 3 deletions

View File

@ -122,6 +122,24 @@ _e_config_profile_name_get(Eet_File *ef)
s = eina_stringshare_add_length(data, data_len); s = eina_stringshare_add_length(data, data_len);
free(data); free(data);
} }
if (s)
{
char buf[PATH_MAX];
char buf2[PATH_MAX];
e_user_dir_snprintf(buf, sizeof(buf), "config/%s", s);
if (!ecore_file_is_dir(buf))
{
snprintf(buf2, sizeof(buf2), "config/%s", s);
e_prefix_data_concat_static(buf, buf2);
if (!ecore_file_is_dir(buf))
{
printf("CF: warning - profile [%s] dir does not exist in user or system dirs\n", s);
eina_stringshare_del(s);
s = NULL;
}
}
}
return s; return s;
} }
@ -172,7 +190,7 @@ _e_config_pending_file_del(const char *path)
eina_hash_del(_e_config_pending_files, path, ef); eina_hash_del(_e_config_pending_files, path, ef);
eina_lock_release(&_e_config_pending_files_lock); eina_lock_release(&_e_config_pending_files_lock);
err = eet_close(ef); eet_close(ef);
switch (err) switch (err)
{ {
case EET_ERROR_NONE: case EET_ERROR_NONE:
@ -1045,19 +1063,24 @@ e_config_init(void)
for (i = 1; i <= _e_config_revisions; i++) for (i = 1; i <= _e_config_revisions; i++)
{ {
e_user_dir_snprintf(buf, sizeof(buf), "config/profile.%i.cfg", i); e_user_dir_snprintf(buf, sizeof(buf), "config/profile.cfg.%i", i);
ef = eet_open(buf, EET_FILE_MODE_READ); ef = eet_open(buf, EET_FILE_MODE_READ);
if (ef) if (ef)
{ {
printf("CF: warning - falling back to %s\n", buf);
_e_config_profile = _e_config_profile_name_get(ef); _e_config_profile = _e_config_profile_name_get(ef);
eet_close(ef); eet_close(ef);
ef = NULL; ef = NULL;
if (_e_config_profile) break; if (_e_config_profile) break;
printf("CF: warning - fallback to %s can't read profile\n", buf);
} }
else if (ecore_file_exists(buf))
printf("CF: warning - fallback to %s failing to open\n", buf);
} }
if (!_e_config_profile) if (!_e_config_profile)
{ {
/* use system if no user profile config */ /* use system if no user profile config */
printf("CF: fallback to system profile config file\n");
e_prefix_data_concat_static(buf, "data/config/profile.cfg"); e_prefix_data_concat_static(buf, "data/config/profile.cfg");
ef = eet_open(buf, EET_FILE_MODE_READ); ef = eet_open(buf, EET_FILE_MODE_READ);
} }
@ -1067,6 +1090,8 @@ e_config_init(void)
_e_config_profile = _e_config_profile_name_get(ef); _e_config_profile = _e_config_profile_name_get(ef);
eet_close(ef); eet_close(ef);
ef = NULL; ef = NULL;
if (!_e_config_profile)
printf("CF: warning - can't read profile\n");
} }
if (!_e_config_profile) if (!_e_config_profile)
{ {
@ -2175,16 +2200,21 @@ e_config_domain_load(const char *domain, E_Config_DD *edd)
for (i = 1; i <= _e_config_revisions; i++) for (i = 1; i <= _e_config_revisions; i++)
{ {
e_user_dir_snprintf(buf, sizeof(buf), "config/%s/%s.%i.cfg", e_user_dir_snprintf(buf, sizeof(buf), "config/%s/%s.cfg.%i",
_e_config_profile, domain, i); _e_config_profile, domain, i);
ef = eet_open(buf, EET_FILE_MODE_READ); ef = eet_open(buf, EET_FILE_MODE_READ);
if (ef) if (ef)
{ {
printf("CF: warning - falling back to %s\n", buf);
data = eet_data_read(ef, edd, "config"); data = eet_data_read(ef, edd, "config");
eet_close(ef); eet_close(ef);
if (data) return data; if (data) return data;
printf("CF: warning - fallback to %s can't read config\n", buf);
} }
else if (ecore_file_exists(buf))
printf("CF: warning - fallback to %s failing to open\n", buf);
} }
printf("CF: fallback to system config config file for [%s]\n", domain);
return e_config_domain_system_load(domain, edd); return e_config_domain_system_load(domain, edd);
} }
@ -2204,6 +2234,7 @@ e_config_domain_system_load(const char *domain, E_Config_DD *edd)
eet_close(ef); eet_close(ef);
return data; return data;
} }
printf("CF: system config load for %s failed\n", buf);
return data; return data;
} }