minishell/src/prompt/prompt.c
2025-02-04 22:53:46 +01:00

57 lines
1.6 KiB
C

/* ************************************************************************** */
/* */
/* :::::::: */
/* prompt.c :+: :+: */
/* +:+ */
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */
/* Updated: 2025/02/04 18:56:08 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "minishell.h"
char *get_path(t_minishell *minishell)
{
char *home;
char *temp;
char *cwd;
cwd = getcwd(NULL, 0);
home = get_enviroment(minishell->enviroment, "HOME");
if (cwd == NULL)
{
perror("getcwd");
return (NULL);
}
if (home && ft_strncmp(cwd, home, ft_strlen(home)) == 0)
{
temp = ft_strjoin("~", cwd + ft_strlen(home));
free(cwd);
cwd = temp;
}
return (cwd);
}
char *ft_prompt(t_minishell *minishell)
{
char *line;
char *cwd;
char *prompt;
char *temp;
cwd = get_path(minishell);
temp = ft_strjoin(BLUE, cwd);
free(cwd);
cwd = ft_strjoin(temp, RESET);
free(temp);
prompt = ft_strjoin(cwd, " > ");
line = readline(prompt);
free(prompt);
return (line);
}