From 723fb69b9e354abcf1c13a7a65b2e781b035d8b3 Mon Sep 17 00:00:00 2001 From: Antonio Ognio Date: Fri, 19 Mar 2010 01:49:09 -0500 Subject: [PATCH] Solves issue #194 on Google Code: --help parameter to redis-srver prints the usage message --- redis.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/redis.c b/redis.c index 7c0a8695..3e07c5fb 100644 --- a/redis.c +++ b/redis.c @@ -799,6 +799,8 @@ static struct redisCommand cmdTable[] = { {NULL,NULL,0,0,NULL,0,0,0} }; +static void usage(); + /*============================ Utility functions ============================ */ /* Glob-style pattern matching. */ @@ -1614,12 +1616,15 @@ static void loadServerConfig(char *filename) { char buf[REDIS_CONFIGLINE_MAX+1], *err = NULL; int linenum = 0; sds line = NULL; + char *errormsg = "Fatal error, can't open config file '%s'"; + char *errorbuf = zmalloc(sizeof(char)*(strlen(errormsg)+strlen(filename))); + sprintf(errorbuf, errormsg, filename); if (filename[0] == '-' && filename[1] == '\0') fp = stdin; else { if ((fp = fopen(filename,"r")) == NULL) { - redisLog(REDIS_WARNING,"Fatal error, can't open config file"); + redisLog(REDIS_WARNING, errorbuf); exit(1); } } @@ -9122,16 +9127,23 @@ static void daemonize(void) { } } +static void usage() { + fprintf(stderr,"Usage: ./redis-server [/path/to/redis.conf]\n"); + exit(1); +} + int main(int argc, char **argv) { time_t start; initServerConfig(); if (argc == 2) { + if (strcmp(argv[1], "--help") == 0) { + usage(); + } resetServerSaveParams(); loadServerConfig(argv[1]); - } else if (argc > 2) { - fprintf(stderr,"Usage: ./redis-server [/path/to/redis.conf]\n"); - exit(1); + } else if ((argc > 2)) { + usage(); } else { redisLog(REDIS_WARNING,"Warning: no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf'"); }