#include #include "config.h" #include "regexset.h" #include "channel.h" #include "user.h" #include "word.h" #include "nick.h" #include "parsing.h" #include "pg.h" int main(int argc, char **argv) { /* Set locale. */ setlocale(LC_CTYPE, ""); /* Regex sets must be initialized before config. */ rs_init(); channel_init(); nick_init(); if(!cfg_init()) { /* Free any registered regex sets and channels when config fails. Config will fail if a regex set fails to compile all parts. */ rs_free(); channel_free(); return 1; } if(!pg_connect(ircstats_config.db_connection_string)) { printf("failed to connect\n"); goto main_free; } if(argc == 2 && strcmp(argv[1], "-i") == 0) { pg_init(); goto disconnect; } if(argc == 2 && strcmp(argv[1], "-u") == 0) { pg_upgrade(); goto disconnect; } if(argc == 2 && strcmp(argv[1], "-d") == 0) { pg_dropall(); goto disconnect; } if(argc == 2 && strcmp(argv[1], "-c") == 0) { pg_dropall(); pg_init(); goto disconnect; } process(); disconnect: pg_disconnect(); main_free: nick_free(); cfg_free(); channel_free(); rs_free(); return 0; }