Allow custom plugins that don't execute anything

This commit is contained in:
David96 2018-11-24 17:21:46 +01:00
parent 08bfdda4cb
commit 2aed121903

View File

@ -4,13 +4,14 @@ waybar::modules::Custom::Custom(const std::string name,
const Json::Value& config) const Json::Value& config)
: ALabel(config, "{}"), name_(name) : ALabel(config, "{}"), name_(name)
{ {
if (!config_["exec"].isString()) { if (config_["exec"].isString()) {
throw std::runtime_error(name_ + " has no exec path."); if (interval_.count() > 0) {
} delayWorker();
if (interval_.count() > 0) { } else {
delayWorker(); continuousWorker();
}
} else { } else {
continuousWorker(); update();
} }
} }
@ -66,7 +67,7 @@ void waybar::modules::Custom::continuousWorker()
auto waybar::modules::Custom::update() -> void auto waybar::modules::Custom::update() -> void
{ {
// Hide label if output is empty // Hide label if output is empty
if (output_.out.empty() || output_.exit_code != 0) { if (config_["exec"].isString() && (output_.out.empty() || output_.exit_code != 0)) {
label_.hide(); label_.hide();
label_.set_name(""); label_.set_name("");
} else { } else {
@ -132,4 +133,4 @@ void waybar::modules::Custom::parseOutputJson()
class_ = parsed["class"].asString(); class_ = parsed["class"].asString();
break; break;
} }
} }