aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 2ed6d89..52cbcb1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -376,10 +376,25 @@ static void ftag_add_one_file(sqlite3 *db, int *next_id, const char *file)
static void ftag_file_add_usage(void)
{
- fprintf(stderr, "Usage: ftag file add [-i] FILE...\n");
+ fprintf(stderr, "Usage: ftag file add [OPTION]... FILE...\n");
}
-/* Add new files to the database. */
+static void ftag_file_add_help(void)
+{
+ printf("ftag file add: add files to the database.\n");
+ ftag_file_add_usage();
+ printf("Available options:\n");
+ printf(" -h print help message\n");
+ printf(" -i interactive, ask before adding each file to the database\n");
+ printf("Tips:\n");
+ printf(" For adding all files in a directory, use\n");
+ printf(" ftag file add dir/*\n");
+ printf(" For doing it recursively, use\n");
+ printf(" find dir -type f -print | xargs ftag file add");
+}
+
+/* Add new files to the database. If directories are given, every file in the
+ * directory will be added, does _not_ recurse into subdirectories. */
static void ftag_file_add(int argc, char **argv)
{
if (argc == 0) {
@@ -389,11 +404,14 @@ static void ftag_file_add(int argc, char **argv)
sqlite3 *db = NULL;
int interactive = 0;
int rc;
- while (argv[0][0] == '-') {
+ while ((argc > 0) && (argv[0][0] == '-')) {
switch (argv[0][1]) {
case 'i':
interactive = 1;
break;
+ case 'h':
+ ftag_file_add_help();
+ exit(EXIT_SUCCESS);
default:
ftag_file_add_usage();
exit(EXIT_FAILURE);