X-Git-Url: https://git.danieliu.xyz/?p=taskasaur.git;a=blobdiff_plain;f=main.cpp;h=44f0278ed31b25b9d9fd066d3fa31a5a34e8f855;hp=791d86e64dbc54193aad35c5ad74c15299f92c5a;hb=12a770aa60e7d8647187edcd38fa7d3e876558c7;hpb=b75ab7b499b56c382e4de760d564b55b29788ae5 diff --git a/main.cpp b/main.cpp index 791d86e..44f0278 100644 --- a/main.cpp +++ b/main.cpp @@ -1,9 +1,64 @@ -#include +#include +#include +#include #include +#include +#include using namespace std; -int main(int argc, char ** argv) { - +bool file_exists(const char* file_name) { + ifstream test_file(file_name); + return (bool)test_file; +} + +void winch_handler(int signum) { // handle terminal resize + refresh(); +} + +int main(int argc, char** argv) { + + signal(SIGWINCH, winch_handler); + + // read command line args + if (argc < 2) { + cout << "Taskasaur options\n-o [board_name]\n-n [new_board+name]"; + return 1; + } + + int flag; + while ((flag = getopt(argc, argv, "o:n:")) != -1) { + if (flag == 'o') { + + char* file_name = optarg; + printf("Opening %s\n", file_name); + + // check if file exists + if (!file_exists(file_name)) { + printf("%s does not exist.\n", file_name); + return 1; + } + + } else if (flag == 'n') { + + char* new_file_name = optarg; + printf("Creating %s\n", new_file_name); + + if (file_exists(new_file_name)) { + printf("The board %s already exist.\n", new_file_name); + return 1; + } + + ofstream new_file; + new_file.open(new_file_name); + new_file << "# Taskasaur\n"; + new_file.close(); + + } + } + /* return 0; */ + + + // start ncurses initscr(); cbreak(); /* raw(); */ @@ -46,7 +101,6 @@ int main(int argc, char ** argv) { } if (ch == 113) break; // q for quit - box(win, 0, 0); wattron(win,COLOR_PAIR(1)); wattron(win, A_BOLD);