From e66188633af6be06e0159089e71265ef321c062a Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Wed, 17 Nov 2010 19:58:39 +0100 Subject: Use getopt to parse commandline options. --- main.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index dbc3688..ffa8001 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,6 @@ +#include #include +#include #include "config.h" #include "regexset.h" @@ -10,9 +12,32 @@ #include "pg.h" int main(int argc, char **argv) { + int opt, init, upgrade, drop, clear; + init = upgrade = drop = clear = 0; + /* Set locale. */ setlocale(LC_CTYPE, ""); + while((opt = getopt(argc, argv, "iudc")) != -1) { + switch(opt) { + case 'i': + init = 1; + break; + case 'u': + upgrade = 1; + break; + case 'd': + drop = 1; + break; + case 'c': + clear = 1; + break; + default: + fprintf(stderr, "Usage: %s [-i|-u|-d|-c]\n", argv[0]); + return 1; + } + } + /* Regex sets must be initialized before config. */ rs_init(); channel_init(); @@ -26,23 +51,27 @@ int main(int argc, char **argv) { } if(!pg_connect(ircstats_config.db_connection_string)) { - printf("failed to connect\n"); + fprintf(stderr, "Failed to connect to database\n"); goto main_free; } - if(argc == 2 && strcmp(argv[1], "-i") == 0) { + if(init) { + printf("Creating tables\n"); pg_init(); goto disconnect; } - if(argc == 2 && strcmp(argv[1], "-u") == 0) { + if(upgrade) { + printf("Upgrading database schema.\n"); pg_upgrade(); goto disconnect; } - if(argc == 2 && strcmp(argv[1], "-d") == 0) { + if(drop) { + printf("Dropping all tables\n"); pg_dropall(); goto disconnect; } - if(argc == 2 && strcmp(argv[1], "-c") == 0) { + if(clear) { + printf("Clearing database content\n"); pg_dropall(); pg_init(); goto disconnect; -- cgit v1.2.3