diff --git a/lib/include/srslte/common/config_file.h b/lib/include/srslte/common/config_file.h index 36c844453..80391f19a 100644 --- a/lib/include/srslte/common/config_file.h +++ b/lib/include/srslte/common/config_file.h @@ -35,15 +35,16 @@ bool config_exists(std::string &filename, std::string default_name) { std::ifstream conf(filename.c_str(), std::ios::in); if(conf.fail()) { - const char *config_dir = NULL; + const char *homedir = NULL; char full_path[256]; ZERO_OBJECT(full_path); - if ((config_dir = getenv("SRSLTE_CONFIG_DIR")) == NULL) { - fprintf(stderr, "No environment variable SRSLTE_CONFIG_DIR defined.\n" - "Please run \"export SRSLTE_CONFIG_DIR=/usr/etc/srs\" to define it.\n\n"); - return false; + if ((homedir = getenv("HOME")) == NULL) { + homedir = getpwuid(getuid())->pw_dir; } - snprintf(full_path, sizeof(full_path), "%s/%s", config_dir, default_name.c_str()); + if (!homedir) { + homedir = "."; + } + snprintf(full_path, sizeof(full_path), "%s/.srs/%s", homedir, default_name.c_str()); filename = std::string(full_path); // try to open again