config: Check if config path exists (#2026)
Closes: #2016 * update: Checks if the configuration file exists * Update: Removing the logic of the config file search from main.cpp
This commit is contained in:
parent
f02fb67020
commit
512c519f25
@ -108,6 +108,7 @@ namespace file_util {
|
|||||||
bool is_fifo(const string& filename);
|
bool is_fifo(const string& filename);
|
||||||
vector<string> glob(string pattern);
|
vector<string> glob(string pattern);
|
||||||
const string expand(const string& path);
|
const string expand(const string& path);
|
||||||
|
string get_config_path();
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
decltype(auto) make_file_descriptor(Args&&... args) {
|
decltype(auto) make_file_descriptor(Args&&... args) {
|
||||||
|
@ -106,11 +106,10 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
if (cli->has("config")) {
|
if (cli->has("config")) {
|
||||||
confpath = cli->get("config");
|
confpath = cli->get("config");
|
||||||
} else if (env_util::has("XDG_CONFIG_HOME")) {
|
|
||||||
confpath = env_util::get("XDG_CONFIG_HOME") + "/polybar/config";
|
|
||||||
} else if (env_util::has("HOME")) {
|
|
||||||
confpath = env_util::get("HOME") + "/.config/polybar/config";
|
|
||||||
} else {
|
} else {
|
||||||
|
confpath = file_util::get_config_path();
|
||||||
|
}
|
||||||
|
if (confpath.empty()) {
|
||||||
throw application_error("Define configuration using --config=PATH");
|
throw application_error("Define configuration using --config=PATH");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,6 +274,26 @@ namespace file_util {
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Search for polybar config and returns the path if found
|
||||||
|
*/
|
||||||
|
string get_config_path() {
|
||||||
|
string confpath;
|
||||||
|
if (env_util::has("XDG_CONFIG_HOME")) {
|
||||||
|
confpath = env_util::get("XDG_CONFIG_HOME") + "/polybar/config";
|
||||||
|
if (exists(confpath)) {
|
||||||
|
return confpath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (env_util::has("HOME")) {
|
||||||
|
confpath = env_util::get("HOME") + "/.config/polybar/config";
|
||||||
|
if (exists(confpath)) {
|
||||||
|
return confpath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
} // namespace file_util
|
} // namespace file_util
|
||||||
|
|
||||||
POLYBAR_NS_END
|
POLYBAR_NS_END
|
||||||
|
Loading…
Reference in New Issue
Block a user