create ~/.config and ~/.cache should they not exist

This commit is contained in:
josch
2014-12-30 19:09:20 +01:00
parent c6dba45cb9
commit c09a663471

View File

@@ -351,10 +351,22 @@ static void setup_conf_dir(char **configfile)
configdir = getenv("XDG_CONFIG_HOME"); configdir = getenv("XDG_CONFIG_HOME");
if (configdir == NULL) { if (configdir == NULL) {
// $HOME/.config/mediafire-tools configdir = strdup_printf("%s/.config", homedir);
/* EEXIST is okay, so only fail if it is something else */
if (mkdir(configdir, 0755) != 0 && errno != EEXIST) {
perror("mkdir");
fprintf(stderr, "cannot create %s\n", configdir);
exit(1);
}
free((void *)configdir);
configdir = strdup_printf("%s/.config/mediafire-tools", homedir); configdir = strdup_printf("%s/.config/mediafire-tools", homedir);
} else { } else {
// $XDG_CONFIG_HOME/mediafire-tools // $XDG_CONFIG_HOME/mediafire-tools
if (mkdir(configdir, 0755) != 0 && errno != EEXIST) {
perror("mkdir");
fprintf(stderr, "cannot create %s\n", configdir);
exit(1);
}
configdir = strdup_printf("%s/mediafire-tools", configdir); configdir = strdup_printf("%s/mediafire-tools", configdir);
} }
/* EEXIST is okay, so only fail if it is something else */ /* EEXIST is okay, so only fail if it is something else */
@@ -392,9 +404,21 @@ static void setup_cache_dir(const char *ekey, char **dircache,
cachedir = getenv("XDG_CACHE_HOME"); cachedir = getenv("XDG_CACHE_HOME");
if (cachedir == NULL) { if (cachedir == NULL) {
// $HOME/.cache/mediafire-tools // $HOME/.cache/mediafire-tools
cachedir = strdup_printf("%s/.cache", homedir);
if (mkdir(cachedir, 0755) != 0 && errno != EEXIST) {
perror("mkdir");
fprintf(stderr, "cannot create %s\n", cachedir);
exit(1);
}
free((void *)cachedir);
cachedir = strdup_printf("%s/.cache/mediafire-tools", homedir); cachedir = strdup_printf("%s/.cache/mediafire-tools", homedir);
} else { } else {
// $XDG_CONFIG_HOME/mediafire-tools // $XDG_CONFIG_HOME/mediafire-tools
if (mkdir(cachedir, 0755) != 0 && errno != EEXIST) {
perror("mkdir");
fprintf(stderr, "cannot create %s\n", cachedir);
exit(1);
}
cachedir = strdup_printf("%s/mediafire-tools", cachedir); cachedir = strdup_printf("%s/mediafire-tools", cachedir);
} }
/* EEXIST is okay, so only fail if it is something else */ /* EEXIST is okay, so only fail if it is something else */