From 4c7350e1c2bd54d11c5b0f63d934c583f013cff5 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 22 Feb 2020 07:29:29 +0100 Subject: added sub commands main, dispatcher, basic error handling --- src/main.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index b670ba6..1d4b928 100644 --- a/src/main.c +++ b/src/main.c @@ -6,14 +6,37 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/03 20:29:33 by cacharle #+# #+# */ -/* Updated: 2020/02/03 20:30:03 by cacharle ### ########.fr */ +/* Updated: 2020/02/22 07:22:09 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "ft_ssl.h" +static t_command g_commands[] = { + {"md5", main_md5}, + {"sha256", main_sha256} +}; + +int fl_dispatch_command(char *command, int argc, char **argv) +{ + unsigned long i; + + i = -1; + while (++i < sizeof(g_commands) / sizeof(t_command)) + if (ft_strcmp(g_commands[i].name, command) == 0) + return (g_commands[i].entry(argc, argv)); + fl_error_command(command); + return (1); +} + int main(int argc, char **argv) { - ft_putendl("hello\n"); - return (0); + if (argc == 1) + { + ft_putstr("usage: "); + ft_putstr(argv[0]); + ft_putendl_fd(" command [command opts] [command args]", STDERR_FILENO); + return (1); + } + return (fl_dispatch_command(argv[1], argc - 2, argv + 2)); } -- cgit