Kouhei Sutou
null+****@clear*****
Mon Apr 22 18:55:32 JST 2013
Kouhei Sutou 2013-04-22 18:55:32 +0900 (Mon, 22 Apr 2013) New Revision: 7a35c5e46b238b4dfc9650b35e2407b0a5554320 https://github.com/groonga/groonga/commit/7a35c5e46b238b4dfc9650b35e2407b0a5554320 Message: Add --help option to groonga-suggest-create-dataset Modified files: src/suggest/groonga_suggest_create_dataset.c Modified: src/suggest/groonga_suggest_create_dataset.c (+29 -5) =================================================================== --- src/suggest/groonga_suggest_create_dataset.c 2013-04-22 18:38:48 +0900 (b675db0) +++ src/suggest/groonga_suggest_create_dataset.c 2013-04-22 18:55:32 +0900 (35f2cd0) @@ -23,11 +23,29 @@ /* For grn_str_getopt() */ #include <str.h> +typedef enum { + MODE_NONE, + MODE_USAGE +} ModeFlags; + +static const char *DEFAULT_DEFAULT_TOKENIZER = "TokenBigram"; + static void usage(FILE *output, int argc, char **argv) { - fprintf(output, "Usage: %s [OPTIONS] DB_PATH DATASET_NAME\n", argv[0]); - fprintf(output, " e.g.: %s /tmp/db shops\n", argv[0]); +#define OUTPUT(...) fprintf(output, __VA_ARGS__) + + OUTPUT("Usage: %s [OPTIONS] DB_PATH DATASET_NAME\n", argv[0]); + OUTPUT(" e.g.: %s /tmp/db shops\n", argv[0]); + OUTPUT("\n"); + OUTPUT("Options:\n"); + OUTPUT(" --default-tokenizer=TOKENIZER Use TOKENIZER as the default\n"); + OUTPUT(" tokenizer for item name\n"); + OUTPUT(" (default: %s)\n", + DEFAULT_DEFAULT_TOKENIZER); + OUTPUT(" -h, --help Show this message and exit\n"); + +#undef OUTPUT } static void @@ -84,10 +102,11 @@ main(int argc, char **argv) grn_obj *db; grn_bool success = GRN_TRUE; int parsed_argc, rest_argc; - int flags = 0; + int flags = MODE_NONE; const char *default_tokenizer = NULL; static grn_str_getopt_opt opts[] = { - {'\0', "default-tokenizer", NULL, 0, GETOPT_OP_NONE} + {'\0', "default-tokenizer", NULL, 0, GETOPT_OP_NONE}, + {'h', "help", NULL, MODE_USAGE, GETOPT_OP_UPDATE} }; opts[0].arg = &default_tokenizer; @@ -98,6 +117,11 @@ main(int argc, char **argv) return EXIT_FAILURE; } + if (flags & MODE_USAGE) { + usage(stdout, argc, argv); + return EXIT_SUCCESS; + } + rest_argc = argc - parsed_argc; if (rest_argc != 2) { usage(stderr, argc, argv); @@ -138,7 +162,7 @@ main(int argc, char **argv) if (default_tokenizer) { GRN_TEXT_PUTS(ctx, &query, default_tokenizer); } else { - GRN_TEXT_PUTS(ctx, &query, "TokenBigram"); + GRN_TEXT_PUTS(ctx, &query, DEFAULT_DEFAULT_TOKENIZER); } GRN_TEXT_PUTC(ctx, &query, '\0'); SEND(GRN_TEXT_VALUE(&query)); -------------- next part -------------- HTML����������������������������...Download