Esempio n. 1
0
File: execute.c Progetto: kedric/42
int		sh_exec(char *name, char **av, t_env *env)
{
	int		ret_exe;
	int		i;
	char	*tmp;
	char	**path;

	ret_exe = -1;
	i = 0;
	path = env->path;
	while (ret_exe < 0 && *path[i] != 0)
	{
		tmp = ft_strjoin(path[i], name);
		if ((ret_exe = execve(tmp, av, env->environ))
				&& path[++i] == 0 && name[0] != '\0'
				&& (ret_exe == execve(av[0], av, env->environ)))
		{
			ft_puterr("ft_sh2 : command invalide : ");
			ft_puterr(name);
			ft_puterr("\n");
			free(tmp);
			exit (-1);
		}
	free(tmp);
	}
	return (0);
}
Esempio n. 2
0
void	ft_check(char *str)
{
	if (str == NULL || *str == '\0')
		ft_puterr("map error\n");
	if (bsq(str) == 0)
		ft_puterr("map error\n");
}
Esempio n. 3
0
File: execute.c Progetto: kedric/42
void	sh_cd(char **av, t_env *env)
{
	char	*tmp;

	if (av[1])
	{
		if (av[1][0] == '~')
		{
			tmp = ft_strjoin(env->home, av[1] + 1);
			av[1] = tmp;
			free(tmp);
		}
		else if (av[1][0] == '-')
			av[1] = getenv("OLDPWD=");
		if (chdir(av[1]))
			ft_puterr("cd : Dossier innaxesible\n");
		else
			env_change_dir(av, env);
	}
	else
	{
		av[1] = env->home;
		if (chdir(av[1]))
			ft_puterr("cd : Dossier innaxesible\n");
		else
			env_change_dir(av, env);
	}
}
Esempio n. 4
0
void	ft_setenv(char **av, t_env *env)
{
	int		i;
	int		j;

	i = 0;
	j = 0;
	while (av[1][i] != '=' && av[1][i] != '\0')
		i++;
	if (av[1][i] == '\0')
	{
		ft_puterr("setenv : usage VAR=VALEUR\n");
		return ;
	}
	while (env->environ[j] && ft_strncmp(env->environ[j], av[1], i))
		j++;
	if (env->environ[j])
	{
		free(env->environ[j]);
		env->environ[j] = ft_strdelc(av[1], '"');
	}
	else
		create_env(env, j, ft_strdelc(av[1], '"'));
	parse_environ(env);
}
Esempio n. 5
0
int		main(int argc, char **argv)
{
	int	i;
	int	sign;
	int	tail;
	int	size;

	sign = 0;
	i = 3;
	if (argc < 4)
		return (1);
	tail = number(argv);
	if (tail == -1)
		return (1);
	if (argv[2][0] == '+')
		sign = 1;
	while (i < argc)
	{
		if (argc > 4)
			print_names(i, argv[i]);
		size = size_files(argv[i]);
		ft_puterr(argv[0], argv[i], ft_tail(sign, tail, size, argv[i]));
		i++;
	}
	return (0);
}
Esempio n. 6
0
int				xwrite(t_fd fd, void *ptr, int size)
{
	int		ret;

	if ((ret = write(fd, ptr, size)) == -1)
		ft_puterr("\033[1;31mError 0x03 Cannot write on output !\033[0;37m\n");
	return (ret);
}
Esempio n. 7
0
int				xread(t_fd fd, void *ptr, int size)
{
	int		ret;

	if ((ret = read(fd, ptr, size)) == -1)
		ft_puterr("\033[1;31mError 0x02 Cannot read this input !\033[0;37m\n");
	return (ret);
}
Esempio n. 8
0
int				xclose(t_fd fd)
{
	int		ret;

	if ((ret = close(fd)) == -1)
		ft_puterr("\033[1;31mError 0x01 File may still be open !\033[0;37m\n");
	return (ret);
}
Esempio n. 9
0
t_fd			xopen(const char *path, int oflag)
{
	int		ret;

	if ((ret = open(path, oflag)) == -1)
		ft_puterr("\033[1;31mError 0x00 Cannot open this file !\033[0;37m\n");
	return (ret);
}
Esempio n. 10
0
int				check_size(char *line, char *col, t_gboard *board)
{
	int		check_int;

	if ((check_int = check_args(line, col)) == -1)
	{
		ft_puterr(P4_ERROR);
		ft_puterr(P4_COORDS);
		ft_puterr("\n");
		return (-1);
	}
	else
	{
		board->nb_columns = ft_atoi(col);
		board->nb_lines = ft_atoi(line);
		if (board->nb_lines < 6 || board->nb_columns < 7)
		{
			ft_puterr(P4_ERROR);
			ft_puterr(P4_SIZE);
			ft_puterr("\n");
			return (-1);
		}
	}
	return (0);
}
Esempio n. 11
0
File: execute.c Progetto: kedric/42
int		sh_execute(char *name, char **av, t_env *env)
{
	if ((env->pid = fork()) < 0)
		ft_puterr("fork fail");
	else if (env->pid == 0)
	{
		sh_exec(name, av , env);
	}
	else
	{
		wait(NULL);
	}
	return (1);
}
Esempio n. 12
0
static void		err_miss(char *err, int integ)
{
	if (integ)
	{
		ft_puterr("\033[31mError\033[0m:\n\033[38;5;222m<");
		ft_puterr(err);
		ft_puterr(">\n\n<");
		ft_puterr(err);
		ft_puterr("/>\033[0m\nnot found.\n");
	}
	else
	{
		ft_puterr("\033[31mError\033[0m: \033[38;5;222m</");
		ft_puterr(err);
		ft_puterr(">\033[0m is missing (  ̄(i) ̄).\n");
	}
}
Esempio n. 13
0
void	show_usage(void)
{
    ft_puterr("\033[0;31musage: \033[0;37mft_select [list of stuff ...]");
}