RaaA: Create full config directory tree during initialization

Also robustify against unset HOME environment var.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29397 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Jarosch 2011-02-25 14:31:26 +00:00
parent 89952213bb
commit 70e48bf66d

View file

@ -25,6 +25,7 @@
#include <stdarg.h> #include <stdarg.h>
#include "rbpaths.h" #include "rbpaths.h"
#include "file.h" /* MAX_PATH */ #include "file.h" /* MAX_PATH */
#include "logf.h"
#include "gcc_extensions.h" #include "gcc_extensions.h"
#include "string-extra.h" #include "string-extra.h"
#include "filefuncs.h" #include "filefuncs.h"
@ -70,9 +71,19 @@ void paths_init(void)
#if (CONFIG_PLATFORM & PLATFORM_ANDROID) #if (CONFIG_PLATFORM & PLATFORM_ANDROID)
mkdir("/sdcard/rockbox"); mkdir("/sdcard/rockbox");
#else #else
char home_path[MAX_PATH]; char config_dir[MAX_PATH];
snprintf(home_path, sizeof(home_path), "%s/.config/rockbox.org", getenv("HOME"));
mkdir(home_path); const char *home = getenv("HOME");
if (!home)
{
logf("HOME environment var not set. Can't write config");
return;
}
snprintf(config_dir, sizeof(config_dir), "%s/.config", home);
mkdir(config_dir);
snprintf(config_dir, sizeof(config_dir), "%s/.config/rockbox.org", home);
mkdir(config_dir);
#endif #endif
} }