From 9b7ae25ae83b5b0d6f61fe542391301a57d31270 Mon Sep 17 00:00:00 2001 From: Khalid Date: Tue, 26 Mar 2024 16:38:54 +0300 Subject: [PATCH] hyprctl: output json with `--batch` if requested (#5277) --- hyprctl/main.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp index b8072de9..0bf6f414 100644 --- a/hyprctl/main.cpp +++ b/hyprctl/main.cpp @@ -22,6 +22,7 @@ #include #include #include +#include const std::string USAGE = R"#(usage: hyprctl [(opt)flags] [command] [(opt)args] @@ -234,9 +235,14 @@ void requestHyprpaper(std::string arg) { std::cout << std::string(buffer); } -void batchRequest(std::string arg) { - std::string rq = "[[BATCH]]" + arg.substr(arg.find_first_of(" ") + 1); +void batchRequest(std::string arg, bool json) { + std::string commands = arg.substr(arg.find_first_of(" ") + 1); + if (json) { + commands = "j/" + std::regex_replace(commands, std::regex(";\\s*"), ";j/"); + } + + std::string rq = "[[BATCH]]" + commands; request(rq); } @@ -383,7 +389,7 @@ int main(int argc, char** argv) { int exitStatus = 0; if (fullRequest.contains("/--batch")) - batchRequest(fullRequest); + batchRequest(fullRequest, json); else if (fullRequest.contains("/hyprpaper")) requestHyprpaper(fullRequest); else if (fullRequest.contains("/switchxkblayout"))