From 7e6a9dc817070ad2ca1f0ccf9f84dbdf966e1e00 Mon Sep 17 00:00:00 2001 From: Tristan Riehs Date: Sun, 8 Feb 2026 11:10:33 +0100 Subject: Finalize wiring for ftag sync --- src/main.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index 13f5eba..230b7ed 100644 --- a/src/main.c +++ b/src/main.c @@ -1136,7 +1136,21 @@ static int ftag_sync_is_remote_newer(void) return get_local_mtime() < get_remote_mtime(); } -static void ftag_sync_pull(void) +static void ftag_sync_usage(void) +{ + puts("Usage: ftag sync COMMAND"); +} + +static void ftag_sync_help(int, char **) +{ + ftag_sync_usage(); + puts("Available commands:"); + puts(" help print this message"); + puts(" pull update the local database from the remote"); + puts(" push update the remote database from the local"); +} + +static void ftag_sync_pull(int, char **) { if (!ftag_sync_is_remote_newer()) return; @@ -1163,7 +1177,7 @@ static void ftag_sync_pull(void) } } -static void ftag_sync_push(void) +static void ftag_sync_push(int, char **) { if (!ftag_sync_is_local_newer()) return; @@ -1196,16 +1210,17 @@ static void ftag_sync_push(void) static void ftag_sync(int argc, char **argv) { - /* TODO: make this a real command - - Add a help command. */ - assert(argc >= 1); - if (strcmp(argv[0], "pull") == 0) { - ftag_sync_pull(); - } - else if (strcmp(argv[0], "push") == 0) { - ftag_sync_push(); + if (argc == 0) { + ftag_sync_usage(); + exit(EXIT_FAILURE); } + struct ftag_command sync_commands[] = { + { .name = "help", .func = ftag_sync_help }, + { .name = "pull", .func = ftag_sync_pull }, + { .name = "push", .func = ftag_sync_push } + }; + int sync_command_count = sizeof(sync_commands) / sizeof(struct ftag_command); + parse_args(argc, argv, sync_commands, sync_command_count); } /* Check that the tag we are trying to create does not exist yet. If this -- cgit v1.2.3