summaryrefslogtreecommitdiff
path: root/src/log.c
blob: 64d738c14d077a85c0488e6cac03e7cdcb6d60cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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);
  mqd_t _ = mq_open("/server_to_engine", O_CREAT, 0666, &attr);
  _ = mq_open("/engine_to_server", O_CREAT, 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);
  }
}