fix: exit code works
This commit is contained in:
@ -1,17 +1,19 @@
|
||||
#include "./utils.h"
|
||||
#include <unistd.h>
|
||||
|
||||
char *ft_get_executable_with_path(const char *name)
|
||||
char *ft_get_executable_with_path(t_data *data, const char *name)
|
||||
{
|
||||
char *path;
|
||||
|
||||
if (access(name, F_OK) != 0)
|
||||
{
|
||||
data->exit_code = 127;
|
||||
ft_eprintf("minishell: %s bash: No such file or directery\n");
|
||||
return (NULL);
|
||||
}
|
||||
if (access(name, X_OK) != 0)
|
||||
{
|
||||
data->exit_code = 126;
|
||||
ft_eprintf("minishell: %s: permission denied\n", name);
|
||||
return (NULL);
|
||||
}
|
||||
@ -24,7 +26,7 @@ char *ft_get_executable_with_path(const char *name)
|
||||
return (path);
|
||||
}
|
||||
|
||||
char *ft_get_executable_without_path(t_list **env, const char *name)
|
||||
char *ft_get_executable_without_path(t_data *data, const char *name)
|
||||
{
|
||||
char **tab;
|
||||
char *paths;
|
||||
@ -32,9 +34,10 @@ char *ft_get_executable_without_path(t_list **env, const char *name)
|
||||
size_t i;
|
||||
|
||||
path = NULL;
|
||||
paths = get_value_by_key("PATH", env);
|
||||
paths = get_value_by_key("PATH", data->env);
|
||||
if (paths == NULL)
|
||||
{
|
||||
data->exit_code = 127;
|
||||
ft_eprintf("minishell: %s: command not found\n", name);
|
||||
return (NULL);
|
||||
}
|
||||
@ -61,17 +64,20 @@ char *ft_get_executable_without_path(t_list **env, const char *name)
|
||||
}
|
||||
ft_freer_tab_ultimate(1, tab);
|
||||
if (path == NULL)
|
||||
{
|
||||
data->exit_code = 127;
|
||||
ft_eprintf("minishell: %s: command not found\n", name);
|
||||
}
|
||||
return (path);
|
||||
}
|
||||
|
||||
char *ft_get_executable(t_list **env, const char *name)
|
||||
char *ft_get_executable(t_data *data, const char *name)
|
||||
{
|
||||
char *path;
|
||||
|
||||
if (name[0] == '.' || name[0] == '/')
|
||||
path = ft_get_executable_with_path(name);
|
||||
path = ft_get_executable_with_path(data, name);
|
||||
else
|
||||
path = ft_get_executable_without_path(env, name);
|
||||
path = ft_get_executable_without_path(data, name);
|
||||
return (path);
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ char **ft_split_quoted(const char *s, char c);
|
||||
void ft_strshift(char *str, int shift);
|
||||
char *ft_quote_remover(char *str);
|
||||
int ft_atoi_check(const char *nptr);
|
||||
char *ft_get_executable(t_list **env, const char *name);
|
||||
char *ft_get_executable(t_data *data, const char *name);
|
||||
void ft_closer(int fds[2]);
|
||||
void ft_add_fd(int fds[2], int fd);
|
||||
|
||||
|
Reference in New Issue
Block a user