payredu.c (1393B)
1 #include <stdio.h> 2 #include <stdlib.h> 3 // TODO enable this for GUI 4 //#include <dlfcn.h> 5 #include <signal.h> 6 #ifndef _WIN32 7 #include <unistd.h> 8 #endif 9 10 #include <book.h> 11 12 #define MAX_MEMORY 4064 13 #define BUFFER_SIZE 256 14 15 int should_exit = 0; 16 17 void 18 sig_handle() { 19 printf("Reloaded\n"); 20 system("date"); 21 should_exit = 1; 22 } 23 24 typedef void* (*module_main_func)(const char*, size_t); 25 26 #define die(...) \ 27 do { printf(__VA_ARGS__); \ 28 exit(-1); } while(0); 29 30 int 31 main(int argc, char* argv[]) { 32 FILE* in = NULL; 33 char* file_to_open = NULL; 34 // FIXME this is for debugging, payredu will not open any file by default 35 if (argc == 1) file_to_open = "october-2023.txt"; 36 else for (int i = 1; i < argc; i++) 37 if (argv[i][0] == '-' && strlen(argv[i]) == 2) { 38 switch (argv[i][1]) { 39 case 'f': 40 file_to_open = argv[++i]; 41 break; 42 default: 43 printf("unknown flag: %s\n", argv[i]); 44 break; 45 } 46 } else die("invalid argument: %s", argv[i]); 47 48 if (file_to_open == NULL) 49 die("require a file to open, pass -f <filename>"); 50 51 in = fopen(file_to_open, "r"); 52 53 char* data = (char*)malloc(2048 * sizeof(char)); 54 size_t data_size = 0; 55 size_t c_read = 0; 56 while((c_read = fread(data + data_size + 0, 1, BUFFER_SIZE, in)) != 0) { 57 data_size += c_read; 58 } 59 if (ferror(in)) fprintf(stderr, "Error reading file\n"); 60 fprintf(stdout, "Startig loop\n"); 61 ledger_parse_data(data, data_size); 62 return 0; 63 } 64