Look for configuration file next to the executable not in CWD
This commit is contained in:
parent
a4b59ddb86
commit
fa4fec5f81
18
main.cpp
18
main.cpp
|
@ -13,6 +13,7 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <libgen.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@ -441,16 +442,31 @@ bool save_json(const std::string &filename, const json &data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string get_module_path() {
|
||||||
|
std::string str;
|
||||||
|
char *exe = realpath("/proc/self/exe", nullptr);
|
||||||
|
if(exe) {
|
||||||
|
str = std::string(exe);
|
||||||
|
free(exe);
|
||||||
|
exe = nullptr;
|
||||||
|
} else {
|
||||||
|
perror("realpath");
|
||||||
|
}
|
||||||
|
exe = dirname((char*)str.c_str());
|
||||||
|
|
||||||
|
return std::string(exe);
|
||||||
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
const std::string module_path = get_module_path();
|
||||||
user_home = std::string(std::getenv("HOME"));
|
user_home = std::string(std::getenv("HOME"));
|
||||||
std::string database_filename = user_home + "/.local/share/yttui.db";
|
std::string database_filename = user_home + "/.local/share/yttui.db";
|
||||||
std::vector<std::string> config_locations{user_home + "/.config/", "./"};
|
|
||||||
|
|
||||||
curl_global_init(CURL_GLOBAL_ALL);
|
curl_global_init(CURL_GLOBAL_ALL);
|
||||||
tp_init();
|
tp_init();
|
||||||
|
|
||||||
|
const std::vector<std::string> config_locations{user_home + "/.config", module_path};
|
||||||
std::string config_file;
|
std::string config_file;
|
||||||
nlohmann::json config;
|
nlohmann::json config;
|
||||||
for(const std::string &location: config_locations) {
|
for(const std::string &location: config_locations) {
|
||||||
|
|
Loading…
Reference in New Issue