load config file from user's home directory first before checking etc

master
Andre Puschmann 6 years ago
parent d22e53832b
commit 77ca1d9882

@ -34,26 +34,26 @@
bool config_exists(std::string &filename, std::string default_name) bool config_exists(std::string &filename, std::string default_name)
{ {
std::ifstream conf(filename.c_str(), std::ios::in); std::ifstream conf(filename.c_str(), std::ios::in);
if(conf.fail()) { if (conf.fail()) {
// try to find file in /etc/srslte // try config folder instead
const char* homedir = NULL;
char full_path[256]; char full_path[256];
ZERO_OBJECT(full_path); ZERO_OBJECT(full_path);
snprintf(full_path, sizeof(full_path), "/etc/srslte/%s", default_name.c_str()); if ((homedir = getenv("HOME")) == NULL) {
homedir = getpwuid(getuid())->pw_dir;
}
if (!homedir) {
homedir = ".";
}
snprintf(full_path, sizeof(full_path), "%s/.config/srslte/%s", homedir, default_name.c_str());
filename = std::string(full_path); filename = std::string(full_path);
// try to open again // try to open again
conf.open(filename.c_str()); conf.open(filename.c_str());
if (conf.fail()) { if (conf.fail()) {
// try home folder // Last chance, try to find file in /etc/srslte
const char* homedir = NULL;
ZERO_OBJECT(full_path); ZERO_OBJECT(full_path);
if ((homedir = getenv("HOME")) == NULL) { snprintf(full_path, sizeof(full_path), "/etc/srslte/%s", default_name.c_str());
homedir = getpwuid(getuid())->pw_dir;
}
if (!homedir) {
homedir = ".";
}
snprintf(full_path, sizeof(full_path), "%s/.srs/%s", homedir, default_name.c_str());
filename = std::string(full_path); filename = std::string(full_path);
// try to open again // try to open again

Loading…
Cancel
Save