Let BASH do de Batchmode, stupid
This commit is contained in:
parent
3106486ae0
commit
128cb915b9
57
src/main.c
57
src/main.c
@ -6,7 +6,7 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/04 16:19:22 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/28 17:03:02 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/03/01 11:01:03 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -59,56 +59,6 @@ static void main_loop(t_minishell *msh)
|
||||
}
|
||||
}
|
||||
|
||||
static int redirect_stdout_stderr(t_minishell *msh, char *file_out)
|
||||
{
|
||||
int fd_out;
|
||||
int fd_log;
|
||||
|
||||
fd_out = open(file_out, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
if (fd_out < 0)
|
||||
return (error_msg("open", "redirect_stdout"), FAILURE);
|
||||
fd_log = open("minishell.log", O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
||||
if (fd_log < 0)
|
||||
return (error_msg("open", "redirect_stderr"), FAILURE);
|
||||
if (dup2(fd_out, STDOUT_FILENO) == -1)
|
||||
return (error_msg("dup2", "redirect_stdout"), FAILURE);
|
||||
if (dup2(fd_log, STDERR_FILENO) == -1)
|
||||
return (error_msg("dup2", "redirect_stderr"), FAILURE);
|
||||
close(fd_out);
|
||||
close(fd_log);
|
||||
return (SUCCESS);
|
||||
}
|
||||
static int main_loop_from_file(t_minishell *msh,
|
||||
char *file_in, char *file_out)
|
||||
{
|
||||
int fd_in;
|
||||
int i;
|
||||
|
||||
i = 1;
|
||||
fd_in = open(file_in, O_RDONLY);
|
||||
if (fd_in < 0)
|
||||
return (error_msg("open", "main_loop_from_file"), FAILURE);
|
||||
if (redirect_stdout_stderr(msh, file_out) == FAILURE)
|
||||
return (FAILURE);
|
||||
while (TRUE)
|
||||
{
|
||||
msh->line = get_next_line(fd_in);
|
||||
if (msh->line == NULL)
|
||||
break ;
|
||||
printf("%d:> %s", i, msh->line);
|
||||
fprintf(stderr, "%d:> %s", i, msh->line);
|
||||
msh->lexer = ft_lexer_new(msh);
|
||||
msh->tokens = ft_parse_input(msh);
|
||||
msh->commands = parser_get_commands(msh);
|
||||
simple_builtins(msh);
|
||||
free_minishell_line(msh);
|
||||
i++;
|
||||
}
|
||||
close(fd_in);
|
||||
close(STDOUT_FILENO);
|
||||
return (SUCCESS);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
t_minishell *msh;
|
||||
@ -120,10 +70,7 @@ int main(int argc, char **argv, char **envp)
|
||||
msh = init_minishell();
|
||||
signal_init_minishell();
|
||||
environment_parse(msh, envp);
|
||||
if (argc == 1)
|
||||
main_loop(msh);
|
||||
else if (argc == 3)
|
||||
main_loop_from_file(msh, argv[1], argv[2]);
|
||||
main_loop(msh);
|
||||
free_minishell(&msh);
|
||||
rl_clear_history();
|
||||
return (EXIT_SUCCESS);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user