main.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include <signal.h>
  2. #include <unistd.h>
  3. #include "args.h"
  4. #include "log.h"
  5. #include "monitor.h"
  6. #include "setter.h"
  7. static void signal_handler(int sig) {
  8. keep_running = 0;
  9. }
  10. static void run(int argc, char *argv[], arguments args) {
  11. maxpwr = args.maxpwr;
  12. if (strcmp(args.logfile, "-") == 0) {
  13. log_file = stdout;
  14. } else {
  15. log_file = fopen(args.logfile, "a");
  16. }
  17. log_verbose = args.verbose;
  18. log_out_v("KRATOS", "Kratos called\n");
  19. for (int i = 0; i < argc; ++i) {
  20. log_out_v("KRATOS", "\targv[%i]: %s\n", i, argv[i]);
  21. }
  22. monitor("wlp2s0", setter, args.interval);
  23. if (strcmp(args.logfile, "-") != 0) {
  24. fclose(log_file);
  25. }
  26. }
  27. int main(int argc, char *argv[]) {
  28. signal(SIGINT, signal_handler);
  29. signal(SIGTERM, signal_handler);
  30. arguments args;
  31. args.verbose = 0;
  32. args.logfile = "-";
  33. args.interval = 5;
  34. args.maxpwr = 15;
  35. argp_parse(&argp, argc, argv, 0, 0, &args);
  36. int fork_result = 0;
  37. if (args.daemon) {
  38. fork_result = fork();
  39. }
  40. if (fork_result == 0)
  41. run(argc, argv, args);
  42. return 0;
  43. }