diff options
| author | Christopher Uhlig | 2024-10-25 15:56:05 +0200 |
|---|---|---|
| committer | Christopher Uhlig | 2024-10-25 15:56:05 +0200 |
| commit | ca4acea03cda19c2a0f0fd168d3c8fd418d71e04 (patch) | |
| tree | 3d2624160fd819bcb27f125dae3f45b41e6c0a6d | |
| parent | 32cba376c211abe3c96f0d39b4d4eff65c104c0a (diff) | |
| download | minishell-ca4acea03cda19c2a0f0fd168d3c8fd418d71e04.tar.gz minishell-ca4acea03cda19c2a0f0fd168d3c8fd418d71e04.zip | |
adjuste input parameter for builtins
| -rw-r--r-- | src/interpreter.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/interpreter.c b/src/interpreter.c index abaeb47..13f10ed 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -3,22 +3,23 @@ /* ::: :::::::: */ /* interpreter.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ +/* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/05 13:15:24 by dkaiser #+# #+# */ -/* Updated: 2024/10/17 16:01:23 by dkaiser ### ########.fr */ +/* Updated: 2024/10/25 15:46:53 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +#include <stdio.h> static int eval_pipe(t_pipe *pipe, t_env *env); -static int eval_cmd(t_cmd *cmd, t_env *env); +static int eval_cmd(t_cmd *cmd, t_env **env); -int eval(t_node *node, t_env *env) +int eval(t_node *node, t_env **env) { if (node->type == PIPE_NODE) - return (eval_pipe(&node->content.pipe, env)); + return (eval_pipe(&node->content.pipe, *env)); else if (node->type == CMD_NODE) return (eval_cmd(&node->content.cmd, env)); else @@ -31,14 +32,24 @@ int eval(t_node *node, t_env *env) static int eval_pipe(t_pipe *pipe, t_env *env) { dbg("TODO: PIPE"); - eval_cmd(&pipe->left->content.cmd, env); - eval_cmd(&pipe->right->content.cmd, env); + eval_cmd(&pipe->left->content.cmd, &env); + eval_cmd(&pipe->right->content.cmd, &env); return (0); } -static int eval_cmd(t_cmd *cmd, t_env *env) +static int eval_cmd(t_cmd *cmd, t_env **env) { - printf("%s\n", cmd->args[0]); - printf("PATH=%s\n", env_get(env, "PATH")); + if (ft_strncmp(cmd->args[0], "pwd", 4) == 0) + pwd(*env); + else if (ft_strncmp(cmd->args[0], "echo", 5) == 0) + echo(cmd->args); + else if (ft_strncmp(cmd->args[0], "env", 4) == 0) + ft_env(*env); + else if (ft_strncmp(cmd->args[0], "cd", 3) == 0) + cd(env, cmd->args); + else if (ft_strncmp(cmd->args[0], "unset", 6) == 0) + unset(cmd->args, env); + else if (ft_strncmp(cmd->args[0], "export", 7) == 0) + export(cmd->args, env); return (0); } |
