#include "main.hpp" #include "string.hpp" static int main_argc; static char** main_argv; static int verbose; char* FindArg(char* s, char* message, char* defarg) { for (int i = 0; i < main_argc; i++) { if (!strcmp(main_argv[i], s) && (i + 1) < main_argc) return main_argv[i + 1]; } ThrowIf(!defarg, message ? message : "Incorrect parameters"); return defarg; } int FindSwitch(int c) { for (int i = 0; i < main_argc; i++) { if (main_argv[i][0] == '-' && strchr(&main_argv[i][1], c)) return 1; } return 0; } /******************************************************************************* ** Verbose *******************************************************************************/ void Verbose(char* s) { if (verbose) { fprintf(stderr, "\r> %s\n", s); fflush(stderr); } } void Failure(char* s) { fprintf(stderr, "ERROR! '%s'\n", s); exit(-1); } void FileProcessingTime(FILE* file) { clock_t seconds = clock() / CLOCKS_PER_SEC; fprintf(file, "Processing time: %02d:%02d\n", seconds / 60, seconds % 60); } int main(int argc, char* argv[]) { main_argc = argc; main_argv = argv; verbose = FindSwitch('v'); //freopen("stdout.txt", "w", stdout); //freopen("stderr.txt", "w", stderr); try { Main(); } catch (Exception& exception) { fprintf(stderr, "ERROR! '%s'\n", exception.error); } if (verbose) FileProcessingTime(stderr); return 0; }