Beispiel #1
0
int				ft_traitement(char *str)
{
	int		i;
	char	*path;
	char	**parsed;

	str = ft_formatting(str);
	i = ft_opera_handler(str);
	if (i >= 0)
	{
		ft_strdel(&str);
		return (i);
	}
	if (!(parsed = parse_command(str)))
	{
		ft_strdel(&str);
		return (-1);
	}
	i = ft_check_builtin(parsed);
	path = get_val("PATH");
	if (i >= 0)
		g_status = g_listefonctions[i](parsed);
	else if (!ft_check_exe(parsed, path))
		return (ft_not_found(&parsed, &str));
	ft_arrfree(&parsed);
	ft_strdel(&str);
	return (1);
}
Beispiel #2
0
void		ft_read_command(char *buf, t_env *env)
{
	char	*cmd;
	char	*arg;
	char	*path;


	arg = ft_get_cmd(&cmd, buf);
	if (ft_check_bultins(cmd, arg, env))
		exit(EXIT_SUCCESS);
	else if(ft_check_path(cmd, &path, env->path))
		execve(path, cmd, env->env);
	else
		ft_not_found(cmd);
}