]> git.cworth.org Git - ttt/blobdiff - src/ttt-args.c
2005-12-08 Carl Worth <cworth@cworth.org>
[ttt] / src / ttt-args.c
index 54cc0dbbd823ac5c9ddebe464e99ceec63500985..f367716c6b70e8e28326d1223c3d1e914424a54e 100644 (file)
@@ -48,16 +48,19 @@ static char TTT_ARGS_PROGRAM_ARGDOC[] = "";
 
 enum {
     TTT_ARGS_VAL_LOG_FILE = 256,
+    TTT_ARGS_VAL_PID_FILE,
     TTT_ARGS_VAL_HELP,
-    TTT_ARGS_VAL_VERSION
+    TTT_ARGS_VAL_VERSION,
 };
 
-static char ttt_args_optstring[] = "h:p:";
+static char ttt_args_optstring[] = "dh:p:";
 static struct option ttt_args_options[] = {
     /* name,           has_arg,        flag,   val */
     {"host",           1,              0,      'h'},
     {"port",           1,              0,      'p'},
+    {"detach",         0,              0,      'd'},
     {"log-file",       1,              0,      TTT_ARGS_VAL_LOG_FILE},
+    {"pid-file",       1,              0,      TTT_ARGS_VAL_PID_FILE},
     {"help",           0,              0,      TTT_ARGS_VAL_HELP},
     {"version",                0,              0,      TTT_ARGS_VAL_VERSION},
     { 0 }
@@ -71,14 +74,20 @@ ttt_args_help (const char *argv0)
     puts ("");
     printf ("Options that are common to both client and server:\n");
     puts ("");
-    printf ("  -h HOST, --host=HOST\tHost to connect/bind to\n");
-    printf ("  -p PORT, --port=PORT\tPort to connect/bind to\n");
+    printf ("  -h HOST, --host=HOST\tHost to connect/bind to [%s]\n",
+           TTT_ARGS_HOST_DEFAULT);
+    printf ("  -p PORT, --port=PORT\tPort to connect/bind to [%s]\n",
+           TTT_ARGS_PORT_DEFAULT);
     printf ("           --help\tGive this help list\n");
     printf ("           --version\tPrint program version\n");
     puts ("");
     printf ("Options that are specific to the server:\n");
     puts ("");
-    printf ("           --log-file=FILE\tFile to use for logging\n");
+    printf ("           --log-file=FILE\tFile to use for logging [stderr]\n");
+    printf ("       -d, --detach\tDetach and daemonize\n");
+    printf ("           --pid-file=FILE\tFile in which to save PID (if -d given)\n"
+           "                          \t[%s]\n",
+           TTT_ARGS_PID_FILE_DEFAULT);
 }
 
 #if 0
@@ -101,6 +110,8 @@ ttt_args_parse(ttt_args_t *args, int argc, char *argv[])
     args->host = TTT_ARGS_HOST_DEFAULT;
     args->port = TTT_ARGS_PORT_DEFAULT;
     args->log_file = TTT_ARGS_LOG_FILE_DEFAULT;
+    args->detach = FALSE;
+    args->pid_file = TTT_ARGS_PID_FILE_DEFAULT;
 
     while (1) {
        c = getopt_long (argc, argv, ttt_args_optstring, ttt_args_options, NULL);
@@ -117,6 +128,12 @@ ttt_args_parse(ttt_args_t *args, int argc, char *argv[])
        case TTT_ARGS_VAL_LOG_FILE:
            args->log_file = optarg;
            break;
+       case 'd':
+           args->detach = TRUE;
+           break;
+       case TTT_ARGS_VAL_PID_FILE:
+           args->pid_file = optarg;
+           break;
        case TTT_ARGS_VAL_VERSION:
            printf ("%s\n", VERSION);
            exit (0);