mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 01:46:00 +01:00
hyprctl: return exitStatus in requestHyprpaper() and request() (#6083)
This commit is contained in:
parent
3381e2b55b
commit
3fe5280ce9
1 changed files with 31 additions and 27 deletions
|
@ -90,24 +90,24 @@ std::vector<SInstanceData> instances() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void request(std::string arg, int minArgs = 0) {
|
int request(std::string arg, int minArgs = 0) {
|
||||||
const auto SERVERSOCKET = socket(AF_UNIX, SOCK_STREAM, 0);
|
const auto SERVERSOCKET = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
|
||||||
const auto ARGS = std::count(arg.begin(), arg.end(), ' ');
|
const auto ARGS = std::count(arg.begin(), arg.end(), ' ');
|
||||||
|
|
||||||
if (ARGS < minArgs) {
|
if (ARGS < minArgs) {
|
||||||
std::cout << "Not enough arguments, expected at least " << minArgs;
|
std::cout << "Not enough arguments, expected at least " << minArgs;
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SERVERSOCKET < 0) {
|
if (SERVERSOCKET < 0) {
|
||||||
std::cout << "Couldn't open a socket (1)";
|
std::cout << "Couldn't open a socket (1)";
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (instanceSignature.empty()) {
|
if (instanceSignature.empty()) {
|
||||||
std::cout << "HYPRLAND_INSTANCE_SIGNATURE was not set! (Is Hyprland running?)";
|
std::cout << "HYPRLAND_INSTANCE_SIGNATURE was not set! (Is Hyprland running?)";
|
||||||
return;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string USERID = std::to_string(getpwuid(getuid())->pw_uid);
|
const std::string USERID = std::to_string(getpwuid(getuid())->pw_uid);
|
||||||
|
@ -121,14 +121,14 @@ void request(std::string arg, int minArgs = 0) {
|
||||||
|
|
||||||
if (connect(SERVERSOCKET, (sockaddr*)&serverAddress, SUN_LEN(&serverAddress)) < 0) {
|
if (connect(SERVERSOCKET, (sockaddr*)&serverAddress, SUN_LEN(&serverAddress)) < 0) {
|
||||||
std::cout << "Couldn't connect to " << socketPath << ". (3)";
|
std::cout << "Couldn't connect to " << socketPath << ". (3)";
|
||||||
return;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto sizeWritten = write(SERVERSOCKET, arg.c_str(), arg.length());
|
auto sizeWritten = write(SERVERSOCKET, arg.c_str(), arg.length());
|
||||||
|
|
||||||
if (sizeWritten < 0) {
|
if (sizeWritten < 0) {
|
||||||
std::cout << "Couldn't write (4)";
|
std::cout << "Couldn't write (4)";
|
||||||
return;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string reply = "";
|
std::string reply = "";
|
||||||
|
@ -138,7 +138,7 @@ void request(std::string arg, int minArgs = 0) {
|
||||||
|
|
||||||
if (sizeWritten < 0) {
|
if (sizeWritten < 0) {
|
||||||
std::cout << "Couldn't read (5)";
|
std::cout << "Couldn't read (5)";
|
||||||
return;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
reply += std::string(buffer, sizeWritten);
|
reply += std::string(buffer, sizeWritten);
|
||||||
|
@ -147,7 +147,7 @@ void request(std::string arg, int minArgs = 0) {
|
||||||
sizeWritten = read(SERVERSOCKET, buffer, 8192);
|
sizeWritten = read(SERVERSOCKET, buffer, 8192);
|
||||||
if (sizeWritten < 0) {
|
if (sizeWritten < 0) {
|
||||||
std::cout << "Couldn't read (5)";
|
std::cout << "Couldn't read (5)";
|
||||||
return;
|
return 5;
|
||||||
}
|
}
|
||||||
reply += std::string(buffer, sizeWritten);
|
reply += std::string(buffer, sizeWritten);
|
||||||
}
|
}
|
||||||
|
@ -155,19 +155,21 @@ void request(std::string arg, int minArgs = 0) {
|
||||||
close(SERVERSOCKET);
|
close(SERVERSOCKET);
|
||||||
|
|
||||||
std::cout << reply;
|
std::cout << reply;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void requestHyprpaper(std::string arg) {
|
int requestHyprpaper(std::string arg) {
|
||||||
const auto SERVERSOCKET = socket(AF_UNIX, SOCK_STREAM, 0);
|
const auto SERVERSOCKET = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
|
||||||
if (SERVERSOCKET < 0) {
|
if (SERVERSOCKET < 0) {
|
||||||
std::cout << "Couldn't open a socket (1)";
|
std::cout << "Couldn't open a socket (1)";
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (instanceSignature.empty()) {
|
if (instanceSignature.empty()) {
|
||||||
std::cout << "HYPRLAND_INSTANCE_SIGNATURE was not set! (Is Hyprland running?)";
|
std::cout << "HYPRLAND_INSTANCE_SIGNATURE was not set! (Is Hyprland running?)";
|
||||||
return;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
sockaddr_un serverAddress = {0};
|
sockaddr_un serverAddress = {0};
|
||||||
|
@ -181,7 +183,7 @@ void requestHyprpaper(std::string arg) {
|
||||||
|
|
||||||
if (connect(SERVERSOCKET, (sockaddr*)&serverAddress, SUN_LEN(&serverAddress)) < 0) {
|
if (connect(SERVERSOCKET, (sockaddr*)&serverAddress, SUN_LEN(&serverAddress)) < 0) {
|
||||||
std::cout << "Couldn't connect to " << socketPath << ". (3)";
|
std::cout << "Couldn't connect to " << socketPath << ". (3)";
|
||||||
return;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
arg = arg.substr(arg.find_first_of('/') + 1); // strip flags
|
arg = arg.substr(arg.find_first_of('/') + 1); // strip flags
|
||||||
|
@ -191,7 +193,7 @@ void requestHyprpaper(std::string arg) {
|
||||||
|
|
||||||
if (sizeWritten < 0) {
|
if (sizeWritten < 0) {
|
||||||
std::cout << "Couldn't write (4)";
|
std::cout << "Couldn't write (4)";
|
||||||
return;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[8192] = {0};
|
char buffer[8192] = {0};
|
||||||
|
@ -200,12 +202,14 @@ void requestHyprpaper(std::string arg) {
|
||||||
|
|
||||||
if (sizeWritten < 0) {
|
if (sizeWritten < 0) {
|
||||||
std::cout << "Couldn't read (5)";
|
std::cout << "Couldn't read (5)";
|
||||||
return;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
close(SERVERSOCKET);
|
close(SERVERSOCKET);
|
||||||
|
|
||||||
std::cout << std::string(buffer);
|
std::cout << std::string(buffer);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void batchRequest(std::string arg, bool json) {
|
void batchRequest(std::string arg, bool json) {
|
||||||
|
@ -384,33 +388,33 @@ int main(int argc, char** argv) {
|
||||||
if (fullRequest.contains("/--batch"))
|
if (fullRequest.contains("/--batch"))
|
||||||
batchRequest(fullRequest, json);
|
batchRequest(fullRequest, json);
|
||||||
else if (fullRequest.contains("/hyprpaper"))
|
else if (fullRequest.contains("/hyprpaper"))
|
||||||
requestHyprpaper(fullRequest);
|
exitStatus = requestHyprpaper(fullRequest);
|
||||||
else if (fullRequest.contains("/switchxkblayout"))
|
else if (fullRequest.contains("/switchxkblayout"))
|
||||||
request(fullRequest, 2);
|
exitStatus = request(fullRequest, 2);
|
||||||
else if (fullRequest.contains("/seterror"))
|
else if (fullRequest.contains("/seterror"))
|
||||||
request(fullRequest, 1);
|
exitStatus = request(fullRequest, 1);
|
||||||
else if (fullRequest.contains("/setprop"))
|
else if (fullRequest.contains("/setprop"))
|
||||||
request(fullRequest, 3);
|
exitStatus = request(fullRequest, 3);
|
||||||
else if (fullRequest.contains("/plugin"))
|
else if (fullRequest.contains("/plugin"))
|
||||||
request(fullRequest, 1);
|
exitStatus = request(fullRequest, 1);
|
||||||
else if (fullRequest.contains("/dismissnotify"))
|
else if (fullRequest.contains("/dismissnotify"))
|
||||||
request(fullRequest, 0);
|
exitStatus = request(fullRequest, 0);
|
||||||
else if (fullRequest.contains("/notify"))
|
else if (fullRequest.contains("/notify"))
|
||||||
request(fullRequest, 2);
|
exitStatus = request(fullRequest, 2);
|
||||||
else if (fullRequest.contains("/output"))
|
else if (fullRequest.contains("/output"))
|
||||||
request(fullRequest, 2);
|
exitStatus = request(fullRequest, 2);
|
||||||
else if (fullRequest.contains("/setcursor"))
|
else if (fullRequest.contains("/setcursor"))
|
||||||
request(fullRequest, 1);
|
exitStatus = request(fullRequest, 1);
|
||||||
else if (fullRequest.contains("/dispatch"))
|
else if (fullRequest.contains("/dispatch"))
|
||||||
request(fullRequest, 1);
|
exitStatus = request(fullRequest, 1);
|
||||||
else if (fullRequest.contains("/keyword"))
|
else if (fullRequest.contains("/keyword"))
|
||||||
request(fullRequest, 2);
|
exitStatus = request(fullRequest, 2);
|
||||||
else if (fullRequest.contains("/decorations"))
|
else if (fullRequest.contains("/decorations"))
|
||||||
request(fullRequest, 1);
|
exitStatus = request(fullRequest, 1);
|
||||||
else if (fullRequest.contains("/--help"))
|
else if (fullRequest.contains("/--help"))
|
||||||
std::cout << USAGE << std::endl;
|
std::cout << USAGE << std::endl;
|
||||||
else {
|
else {
|
||||||
request(fullRequest);
|
exitStatus = request(fullRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
Loading…
Reference in a new issue