aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c
index 58d30ca..c4bd71b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -688,7 +688,10 @@ static void ftag_file(int argc, char **argv)
static void ftag_help(int, char **)
{
- puts("Usage: ftag COMMAND [ARG]...");
+ puts("Usage: ftag [OPTION]... COMMAND [ARG]...");
+ puts("Available values for OPTION:");
+ puts(" -c FILE use FILE as configuration file");
+ puts(" -h display this help");
puts("Available values for COMMAND:");
puts(" init initialize the database");
puts(" file manage files");
@@ -698,11 +701,6 @@ static void ftag_help(int, char **)
puts(" tag manage tags");
puts("Some commands also have their own help,");
puts("try \"ftag COMMAND help\" or \"ftag COMMAND -h\".");
- puts("Configuration:");
- printf(" cache %s\n", FTAG_CACHE_DIR);
- printf(" config %s\n", FTAG_CONFIG_DIR);
- printf(" prefix %s\n", FTAG_PREFIX);
- printf(" version %s\n", FTAG_VERSION);
}
static void ftag_query_usage(void)
@@ -1055,12 +1053,29 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
+ const char* config_file = NULL;
+ const char *optstring = "c:h";
+ int opt;
+
+ while ((opt = getopt(argc, argv, optstring)) != -1) {
+ switch (opt) {
+ case 'h':
+ ftag_help(0, NULL);
+ exit(EXIT_SUCCESS);
+ case 'c':
+ config_file = optarg;
+ break;
+ case'?':
+ default:
+ ftag_help(0, NULL);
+ exit(EXIT_FAILURE);
+ }
+ }
+
const struct ftag_command toplevel_commands[] = {
{.name = "export", .func = ftag_export},
{.name = "init", .func = ftag_init},
{.name = "file", .func = ftag_file},
- {.name = "-h", .func = ftag_help},
- {.name = "--help", .func = ftag_help},
{.name = "help", .func = ftag_help},
{.name = "query", .func = ftag_query},
{.name = "sync", .func = ftag_sync},