X-Git-Url: http://pileus.org/git/?p=lackey;a=blobdiff_plain;f=src%2Fmain.c;h=99816b13fb40f76af822b511ba13130036c85e94;hp=1329eca482b5553b5c0c0f078b6439e52e67cf6d;hb=d19f3fd4cc08a1aba44aa61f8d657363fbb5d720;hpb=9a2c6c8fc2a179a5233dc2b37526c3586653e7ce diff --git a/src/main.c b/src/main.c index 1329eca..99816b1 100644 --- a/src/main.c +++ b/src/main.c @@ -1,12 +1,68 @@ -#include +/* + * Copyright (C) 2012-2013 Andy Spencer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include +#include + +#include "args.h" +#include "util.h" +#include "conf.h" +#include "date.h" +#include "cal.h" +#include "view.h" + +/* Config parser */ +static void on_config(const char *group, const char *name, const char *key, const char *value) +{ + view_config(group, name, key, value); + cal_config(group, name, key, value); +} + +/* Control-C handler, so we don't hose the therminal */ +static void on_sigint(int signum) +{ + view_exit(); + exit(0); +} + +/* Main */ int main(int argc, char **argv) { - initscr(); - printw("hello, world"); - refresh(); - getch(); - endwin(); + /* Misc setup */ + signal(SIGINT, on_sigint); + + /* Configuration */ + args_setup(argc, argv); + conf_setup(".lackeyrc", on_config); + + /* Initialize */ + args_init(); + util_init(); + conf_init(); + date_init(); + cal_init(); + + /* Run args main */ + args_main(); + + /* Run view main */ + view_init(); + view_main(); + view_exit(); return 0; }