aboutsummaryrefslogtreecommitdiff
path: root/src/interpreter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interpreter.c')
-rw-r--r--src/interpreter.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/interpreter.c b/src/interpreter.c
index 2a09e6d..abaeb47 100644
--- a/src/interpreter.c
+++ b/src/interpreter.c
@@ -6,21 +6,21 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/08/05 13:15:24 by dkaiser #+# #+# */
-/* Updated: 2024/08/05 13:33:16 by dkaiser ### ########.fr */
+/* Updated: 2024/10/17 16:01:23 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "minishell.h"
-static int eval_pipe(t_pipe *pipe);
-static int eval_cmd(t_cmd *cmd);
+static int eval_pipe(t_pipe *pipe, t_env *env);
+static int eval_cmd(t_cmd *cmd, t_env *env);
-int eval(t_node *node)
+int eval(t_node *node, t_env *env)
{
if (node->type == PIPE_NODE)
- return (eval_pipe(&node->content.pipe));
+ return (eval_pipe(&node->content.pipe, env));
else if (node->type == CMD_NODE)
- return (eval_cmd(&node->content.cmd));
+ return (eval_cmd(&node->content.cmd, env));
else
{
panic(UNREACHABLE);
@@ -28,12 +28,17 @@ int eval(t_node *node)
}
}
-static int eval_pipe(t_pipe *pipe)
+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);
return (0);
}
-static int eval_cmd(t_cmd *cmd)
+static int eval_cmd(t_cmd *cmd, t_env *env)
{
+ printf("%s\n", cmd->args[0]);
+ printf("PATH=%s\n", env_get(env, "PATH"));
return (0);
}