libfwupdplugin: Make sure systemd created environment variables exist

If they don't, fall back to the package defined directories.
This commit is contained in:
Mario Limonciello 2019-12-12 10:45:42 -06:00 committed by Mario Limonciello
parent 62b8336383
commit 695cb5884b

View File

@ -1087,21 +1087,21 @@ fu_common_get_path (FuPathKind path_kind)
/* /etc/fwupd */
case FU_PATH_KIND_SYSCONFDIR_PKG:
tmp = g_getenv ("CONFIGURATION_DIRECTORY");
if (tmp != NULL)
if (tmp != NULL && g_file_test (tmp, G_FILE_TEST_EXISTS))
return g_build_filename (tmp, NULL);
basedir = fu_common_get_path (FU_PATH_KIND_SYSCONFDIR);
return g_build_filename (basedir, PACKAGE_NAME, NULL);
/* /var/lib/fwupd */
case FU_PATH_KIND_LOCALSTATEDIR_PKG:
tmp = g_getenv ("STATE_DIRECTORY");
if (tmp != NULL)
if (tmp != NULL && g_file_test (tmp, G_FILE_TEST_EXISTS))
return g_build_filename (tmp, NULL);
basedir = fu_common_get_path (FU_PATH_KIND_LOCALSTATEDIR);
return g_build_filename (basedir, "lib", PACKAGE_NAME, NULL);
/* /var/cache/fwupd */
case FU_PATH_KIND_CACHEDIR_PKG:
tmp = g_getenv ("CACHE_DIRECTORY");
if (tmp != NULL)
if (tmp != NULL && g_file_test (tmp, G_FILE_TEST_EXISTS))
return g_build_filename (tmp, NULL);
basedir = fu_common_get_path (FU_PATH_KIND_LOCALSTATEDIR);
return g_build_filename (basedir, "cache", PACKAGE_NAME, NULL);