From b74a688bcf42dc9d189e0cdb69ba5319e8b3c8cd Mon Sep 17 00:00:00 2001 From: gazhonsepaskwa Date: Mon, 13 Jan 2025 16:04:01 +0100 Subject: [PATCH] powerline and exit --- .gitignore | 2 ++ Makefile | 17 +++++++++++++---- lib/libft/colors.h | 2 +- minishell.h | 17 +++++++++++++++++ srcs/main.c | 38 ++++++++++++++++++++++++++++++++++++-- 5 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..768adb8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +minishell +.objs/* diff --git a/Makefile b/Makefile index e1e3658..c6b3e60 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,15 @@ -CC = clang +CC = gcc WFLAGS = -Wall -Werror -Wextra -g -g3 -ggdb +LINK = -lreadline SRCDIR = srcs OBJDIR = .objs +BONUS_OBJDIR = bonus_objs INCDIR = . LIBFT_DIR = lib/libft NAME = minishell +LIBFT = $(LIBFT_DIR)/libft.a SRCS = $(shell find $(SRCDIR) -name "*.c") OBJS = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRCS)) @@ -19,19 +22,25 @@ RESET = \033[0m all: $(NAME) +$(LIBFT): + @make -C $(LIBFT_DIR) all + $(OBJDIR)/%.o: $(SRCDIR)/%.c @mkdir -p $(dir $@) - @$(CC) $(WFLAGS) -MMD -MP -I$(INCDIR) -c $< -g3 -ggdb -o $@ + @$(CC) $(WFLAGS) -MMD -MP -I$(INCDIR) -c $< -g3 -ggdb -o $@ $(LINK) -$(NAME): $(OBJS) - @$(CC) $(WFLAGS) $(OBJS) -o $(NAME) +$(NAME): $(LIBFT) $(OBJS) + @$(CC) $(WFLAGS) $(OBJS) $(LIBFT) -o $(NAME) $(LINK) @echo "$(CYAN)Build completed: $(NAME)$(RESET)" clean: @rm -rf $(OBJDIR) + @make -C $(LIBFT_DIR) clean @echo "$(CYAN)Project cleaned$(RESET)" fclean: clean + @make -C $(LIBFT_DIR) fclean + @rm $(NAME) @echo "$(CYAN)Executable removed$(RESET)" re: fclean all diff --git a/lib/libft/colors.h b/lib/libft/colors.h index cb540f0..6dc1431 100644 --- a/lib/libft/colors.h +++ b/lib/libft/colors.h @@ -53,4 +53,4 @@ # define BG_CYAN "\033[46m" # define BG_WHITE "\033[47m" -#endif \ No newline at end of file +#endif diff --git a/minishell.h b/minishell.h index e69de29..4f1d6f0 100644 --- a/minishell.h +++ b/minishell.h @@ -0,0 +1,17 @@ +#ifndef MINISHELL_H +# define MINISHELL_H + +# include +# include +# include +# include + +# include "lib/libft/libft.h" + +# define POW1 "\033[1;38;2;21;22;26;48;2;92;106;178m" +# define POW2 "\033[1;38;2;92;106;178;48;2;54;54;54m" +# define POW3 "\033[1;38;2;54;54;54;48;2;39;39;39m" +# define POW4 "\033[0;38;2;204;205;209;48;2;39;39;39m" +# define POW5 "\033[1;38;2;39;39;39m" + +#endif diff --git a/srcs/main.c b/srcs/main.c index ffd8381..a1bd6de 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -1,4 +1,38 @@ -int main (int ac, char **av, char **envp) -{ +#include "../minishell.h" +char *powerline(void) +{ + char *pwd; + char *tilt; + + pwd = getenv("PWD"); + if (ft_strncmp(pwd, "/home/", 6) == 0) + { + pwd = pwd + 6; + while ((*pwd) != '/') + pwd = pwd + 1; + tilt = " ~"; + } + else + tilt = " "; + printf("\n%s  MMOAT? %s%s%s%s%s %s%s%s ", + POW1, POW2, POW3, POW4, tilt, pwd, RESET, POW5, RESET); + return (readline("")); +} + +int main(int ac, char **av, char **envp) +{ + char *input; + + (void)ac; + (void)av; + (void)envp; + while (1) + { + input = powerline(); + if (ft_strncmp(input, "exit", 4) == 0) + break ; + free(input); + } + return (0); }