X-Git-Url: https://git.cworth.org/git?p=ttt;a=blobdiff_plain;f=src%2Fttt-args.c;h=f367716c6b70e8e28326d1223c3d1e914424a54e;hp=18a7d255405cd49c0fda6cbf6be7120dccdf5cf2;hb=95898262b4ce4a2a3d36f70a4e6cc8188decc142;hpb=49f7f9e3dc198c3593021bff5514f19090a4834c diff --git a/src/ttt-args.c b/src/ttt-args.c index 18a7d25..f367716 100644 --- a/src/ttt-args.c +++ b/src/ttt-args.c @@ -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,22 +74,30 @@ 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 static void ttt_args_usage (const char *argv0) { printf ("Usage: %s [OPTION] %s\n", argv0, TTT_ARGS_PROGRAM_ARGDOC); printf ("Try `%s --help' for more information.\n", argv0); } +#endif int ttt_args_parse(ttt_args_t *args, int argc, char *argv[]) @@ -99,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); @@ -115,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);