mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 15:45:59 +01:00
hyprctl: add json output on hyprctl -j plugins list (#8480)
--------- Co-authored-by: Руслан Новокшонов <r.novokshonov@vk.team>
This commit is contained in:
parent
9d37b1b073
commit
af83c82513
1 changed files with 30 additions and 7 deletions
|
@ -1473,16 +1473,39 @@ std::string dispatchPlugin(eHyprCtlOutputFormat format, std::string request) {
|
||||||
g_pPluginSystem->unloadPlugin(PLUGIN);
|
g_pPluginSystem->unloadPlugin(PLUGIN);
|
||||||
} else if (OPERATION == "list") {
|
} else if (OPERATION == "list") {
|
||||||
const auto PLUGINS = g_pPluginSystem->getAllPlugins();
|
const auto PLUGINS = g_pPluginSystem->getAllPlugins();
|
||||||
|
std::string result = "";
|
||||||
|
|
||||||
|
if (format == eHyprCtlOutputFormat::FORMAT_JSON) {
|
||||||
|
result += "[";
|
||||||
|
|
||||||
|
if (PLUGINS.size() == 0)
|
||||||
|
return "[]";
|
||||||
|
|
||||||
|
for (auto const& p : PLUGINS) {
|
||||||
|
result += std::format(
|
||||||
|
R"#(
|
||||||
|
{{
|
||||||
|
"name": "{}",
|
||||||
|
"author": "{}",
|
||||||
|
"handle": "{:x}",
|
||||||
|
"version": "{}",
|
||||||
|
"description": "{}"
|
||||||
|
}},)#",
|
||||||
|
escapeJSONStrings(p->name), escapeJSONStrings(p->author), (uintptr_t)p->m_pHandle, escapeJSONStrings(p->version), escapeJSONStrings(p->description));
|
||||||
|
}
|
||||||
|
trimTrailingComma(result);
|
||||||
|
result += "]";
|
||||||
|
} else {
|
||||||
if (PLUGINS.size() == 0)
|
if (PLUGINS.size() == 0)
|
||||||
return "no plugins loaded";
|
return "no plugins loaded";
|
||||||
|
|
||||||
std::string list = "";
|
|
||||||
for (auto const& p : PLUGINS) {
|
for (auto const& p : PLUGINS) {
|
||||||
list += std::format("\nPlugin {} by {}:\n\tHandle: {:x}\n\tVersion: {}\n\tDescription: {}\n", p->name, p->author, (uintptr_t)p->m_pHandle, p->version, p->description);
|
result +=
|
||||||
|
std::format("\nPlugin {} by {}:\n\tHandle: {:x}\n\tVersion: {}\n\tDescription: {}\n", p->name, p->author, (uintptr_t)p->m_pHandle, p->version, p->description);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
return "unknown opt";
|
return "unknown opt";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue