]> git.saurik.com Git - redis.git/commitdiff
Solves issue #194 on Google Code: --help parameter to redis-srver prints the usage...
authorAntonio Ognio <gnrfan@gnrfan-laptop.(none)>
Fri, 19 Mar 2010 06:49:09 +0000 (01:49 -0500)
committerAntonio Ognio <gnrfan@gnrfan-laptop.(none)>
Fri, 19 Mar 2010 06:49:09 +0000 (01:49 -0500)
redis.c

diff --git a/redis.c b/redis.c
index 7c0a86956b1fd1dd5a645a5f1cf6b47e579f8183..3e07c5fb5e83cee008f3e7f514bf9271bf510b3d 100644 (file)
--- 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'");
     }