From 3d5f0a5a4abb55d2540bc69c0a86ba380b9dca6d Mon Sep 17 00:00:00 2001 From: onelin Date: Fri, 1 May 2026 21:24:18 +0200 Subject: Rename status_update --- status_ctl.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 status_ctl.c (limited to 'status_ctl.c') diff --git a/status_ctl.c b/status_ctl.c new file mode 100644 index 0000000..e4abda8 --- /dev/null +++ b/status_ctl.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "config.h" + +int main (int argc, char* argv[]) { + struct message_t msg = {.action = nop, .element = ELEMENT_INVALID}; + char* queue_identifier; + + + if (argc != 3) { + errx(EXIT_FAILURE, "Invalid argument(s): %s ACTION ELEMENT\n", argv[0]); + } + + if (!strcmp(argv[1], "update")) { + msg.action = update; + } else { + errx(EXIT_FAILURE, "Invalid action\n"); + } + +#define ELEMENT(name, _arg, _minutes, _seconds) \ + else if (!strcmp(argv[2], #name)) { \ + msg.element = ELEMENT_##name; \ + } + + if (!strcmp(argv[2], "all")) { + msg.element = ELEMENT_MAX; \ + } +#include "config.def.h" +#undef ELEMENT + else { + errx(EXIT_FAILURE, "Invalid element\n"); + } + + queue_identifier = "/status"; + mqd_t msg_queue_id = mq_open(queue_identifier, O_WRONLY); + if (msg_queue_id == -1) { + errx(EXIT_FAILURE, "Failed to open mq\n"); + } + + + if (mq_send(msg_queue_id, (char*)&msg, sizeof(struct message_t), 0) == -1) { + err(EXIT_FAILURE, "Failed to send message\n"); + } + + mq_close(msg_queue_id); + + return 0; +} -- cgit v1.3