diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-29 12:19:52 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-29 12:19:52 +0530 |
| commit | c38475eb5d82f6e587faf2956a7eba3085890e99 (patch) | |
| tree | dcfd2cf494ce4a92d998a0b7b4ebbf859ab3957f /src/log.c | |
| parent | 764ecc4127e3a2f967679be5778b263cf4927b90 (diff) | |
logging system works
Diffstat (limited to 'src/log.c')
| -rw-r--r-- | src/log.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/log.c b/src/log.c new file mode 100644 index 0000000..f921d52 --- /dev/null +++ b/src/log.c @@ -0,0 +1,27 @@ +#include <stdio.h> +#include "ipc.c" +#include "unistd.h" + +int main(int argc, char** argv) { + mqd_t rx = mq_open("/logs", O_CREAT | O_RDONLY, 0666, &attr); + + for (int i = 1; i < argc; i++) { + printf("Running: %s\n", argv[i]); + if (fork() == 0) { + char* new_argv[] = {argv[i], NULL}; + execvp(argv[i], new_argv); + } + } + + while (1) { + char* buf = read_queue(rx); + if (buf[0] == 'e') { + printf("[\x1b[31mERRO\x1b[0m] %s\n", buf + 1); + } else if (buf[0] == 'w') { + printf("[\x1b[1;33mWARN\x1b[0m] %s\n", buf + 1); + } else if (buf[0] == 'i') { + printf("[\x1b[32mINFO\x1b[0m] %s\n", buf + 1); + } + free(buf); + } +} |
