\
builtins/cd.c \
builtins/echo.c \
+ builtins/pwd.c \
+ builtins/env.c \
SOURCES := $(addprefix $(SRCDIR)/, $(SOURCES))
const char *new_value);
int cd(int argc, char **argv, t_execution_env *env);
int echo(int argc, char **argv);
+int pwd(int argc);
+int ft_env(int argc, t_execution_env *env);
#endif // EXECUTION_H
#include "execution.h"
#include <unistd.h>
-// size_t ft_strlen(const char *str) //libft ()
-// {
-// unsigned int i;
-// i = 0;
-// while (str[i] != '\0')
-// {
-// i++;
-// }
-// return (i);
-// }
-
-// void ft_putstr_fd(char *s, int fd) //libft fuction
-// {
-// if (!s)
-// return;
-// write(fd, s, ft_strlen(s));
-// }
-
int ft_check_n(char *str)
{
if (str[0] == '-' && str[1] == 'n')
}
if (flag == 0)
ft_putstr_fd("\n", 1);
-
- return 1;
+ return (1);
}
--- /dev/null
+#include <stdio.h>
+#include <unistd.h>
+#include "minishell.h"
+#include "execution.h"
+#include "libft.h"
+
+int env_exec(const t_execution_env *env)
+{
+ const t_vec *exported;
+ size_t i;
+ char *string;
+
+ exported = &env->vars->exported;
+ i = 0;
+ while (i + 1 < exported->size)
+ {
+ string = *(char **)ft_vec_caccess(exported, i);
+ ft_putstr_fd(string, 1);
+ ft_putstr_fd("\n", 1);
+ ++i;
+ }
+ return (1);
+}
+
+int ft_env(int argc, t_execution_env *env)
+{
+ if (argc == 1)
+ {
+ env_exec(env);
+ return (1);
+ }
+ ft_putstr_fd("env: invalid option\n", 1);
+ return (0);
+}
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <unistd.h>
+#include "minishell.h"
+#include "execution.h"
+
+int pwd(int argc)
+{
+ char cwd[256];
+
+ if (argc > 1)
+ {
+ ft_putstr_fd("pwd: too many arguments\n", 1);
+ return (1);
+ }
+ else if (getcwd(cwd, sizeof(cwd)) == NULL)
+ perror("getcwd() error");
+ else
+ {
+ ft_putstr_fd(cwd, 1);
+ ft_putstr_fd("\n", 1);
+ }
+ return (0);
+}
\ No newline at end of file
/* By: lnikolov <lnikolov@student.42prague.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/07/21 08:57:54 by ljiriste #+# #+# */
-/* Updated: 2024/08/22 12:46:42 by lnikolov ### ########.fr */
+/* Updated: 2024/08/22 16:34:14 by lnikolov ### ########.fr */
/* */
/* ************************************************************************** */
return (1);
if (!ft_strcmp(str, "echo"))
return (1);
+ if (!ft_strcmp(str, "pwd"))
+ return (1);
+ if (!ft_strcmp(str, "env"))
+ return (1);
return (0);
}
env->ret_val = cd(count_fields(fields), fields, env);
if (!ft_strcmp(fields[0], "echo"))
env->ret_val = echo(count_fields(fields), fields);
+ if (!ft_strcmp(fields[0], "pwd"))
+ env->ret_val = pwd(count_fields(fields));
+ if (!ft_strcmp(fields[0], "env"))
+ env->ret_val = ft_env(count_fields(fields), env);
else
return (-1);
return (0);