forked from jaildesigner-jailgames/jaildoctors_dilemma
Update: createSystemFolder() ja crea la carpeta on toca en Linux
This commit is contained in:
@@ -421,10 +421,10 @@ bool Director::saveConfig()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Crea la carpeta del sistema donde guardar datos
|
// Crea la carpeta del sistema donde guardar datos
|
||||||
void Director::createSystemFolder(std::string folder)
|
void Director::createSystemFolder(const std::string &folder)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
systemFolder = std::string(getenv("APPDATA")) + "/" + folder;
|
system_folder_ = std::string(getenv("APPDATA")) + "/" + folder;
|
||||||
#elif __APPLE__
|
#elif __APPLE__
|
||||||
struct passwd *pw = getpwuid(getuid());
|
struct passwd *pw = getpwuid(getuid());
|
||||||
const char *homedir = pw->pw_dir;
|
const char *homedir = pw->pw_dir;
|
||||||
@@ -432,17 +432,28 @@ void Director::createSystemFolder(std::string folder)
|
|||||||
#elif __linux__
|
#elif __linux__
|
||||||
struct passwd *pw = getpwuid(getuid());
|
struct passwd *pw = getpwuid(getuid());
|
||||||
const char *homedir = pw->pw_dir;
|
const char *homedir = pw->pw_dir;
|
||||||
systemFolder = std::string(homedir) + "/." + folder;
|
system_folder_ = std::string(homedir) + "/.config/" + folder;
|
||||||
|
|
||||||
|
{
|
||||||
|
// Intenta crear ".config", per si no existeix
|
||||||
|
std::string config_base_folder = std::string(homedir) + "/.config";
|
||||||
|
int ret = mkdir(config_base_folder.c_str(), S_IRWXU);
|
||||||
|
if (ret == -1 && errno != EEXIST)
|
||||||
|
{
|
||||||
|
printf("ERROR CREATING CONFIG BASE FOLDER.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct stat st = {0};
|
struct stat st = {0};
|
||||||
if (stat(systemFolder.c_str(), &st) == -1)
|
if (stat(system_folder_.c_str(), &st) == -1)
|
||||||
{
|
{
|
||||||
errno = 0;
|
errno = 0;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
int ret = mkdir(systemFolder.c_str());
|
int ret = mkdir(system_folder_.c_str());
|
||||||
#else
|
#else
|
||||||
int ret = mkdir(systemFolder.c_str(), S_IRWXU);
|
int ret = mkdir(system_folder_.c_str(), S_IRWXU);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ private:
|
|||||||
bool saveConfig();
|
bool saveConfig();
|
||||||
|
|
||||||
// Crea la carpeta del sistema donde guardar datos
|
// Crea la carpeta del sistema donde guardar datos
|
||||||
void createSystemFolder(std::string folder);
|
void createSystemFolder(const std::string &folder);
|
||||||
|
|
||||||
// Carga los recursos
|
// Carga los recursos
|
||||||
void loadResources(section_t *section);
|
void loadResources(section_t *section);
|
||||||
|
|||||||
Reference in New Issue
Block a user