Merge pull request #12 from namaenonaimumei/PR_custom-config

feat: Provide way to override default config file path
This commit is contained in:
Vaxry 2022-09-28 12:15:08 +01:00 committed by GitHub
commit 034a663dbb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 3 deletions

View file

@ -34,6 +34,7 @@ public:
std::vector<std::unique_ptr<SMonitor>> m_vMonitors;
bool m_bIPCEnabled = true;
std::string m_szExplicitConfigPath;
void removeOldHyprpaperImages();
void preloadAllWallpapersFromConfig();

View file

@ -4,11 +4,17 @@
CConfigManager::CConfigManager() {
// init the entire thing
const char* const ENVHOME = getenv("HOME");
const std::string CONFIGPATH = ENVHOME + (std::string) "/.config/hypr/hyprpaper.conf";
std::string configPath;
if (g_pHyprpaper->m_szExplicitConfigPath == "") {
const char *const ENVHOME = getenv("HOME");
configPath = ENVHOME + (std::string) "/.config/hypr/hyprpaper.conf";
}
else {
configPath = g_pHyprpaper->m_szExplicitConfigPath;
}
std::ifstream ifs;
ifs.open(CONFIGPATH);
ifs.open(configPath);
if (!ifs.good()) {
Debug::log(CRIT, "Hyprpaper was not provided a config!");

View file

@ -5,8 +5,23 @@
int main(int argc, char** argv, char** envp) {
Debug::log(LOG, "Welcome to hyprpaper!\nbuilt from commit %s (%s)", GIT_COMMIT_HASH, GIT_COMMIT_MESSAGE);
// parse some args
std::string configPath;
for (int i = 1; i < argc; ++i) {
if ((!strcmp(argv[i], "-c") || !strcmp(argv[i], "--config")) && argc >= i + 2) {
configPath = std::string(argv[++i]);
Debug::log(LOG, "Using config location %s.", configPath.c_str());
} else {
std::cout << "Hyprpaper usage: hyprpaper [arg [...]].\n\nArguments:\n" <<
"--help -h | Show this help message\n" <<
"--config -c | Specify config file to use\n";
return 1;
}
}
// starts
g_pHyprpaper = std::make_unique<CHyprpaper>();
g_pHyprpaper->m_szExplicitConfigPath = configPath;
g_pHyprpaper->init();
return 0;