57 lines
1.6 KiB
C
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);
|
|
}
|
|
|