powerline and exit

This commit is contained in:
gazhonsepaskwa
2025-01-13 16:04:01 +01:00
parent 09c2cb5b3e
commit b74a688bcf
5 changed files with 69 additions and 7 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
minishell
.objs/*

View File

@@ -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

View File

@@ -53,4 +53,4 @@
# define BG_CYAN "\033[46m"
# define BG_WHITE "\033[47m"
#endif
#endif

View File

@@ -0,0 +1,17 @@
#ifndef MINISHELL_H
# define MINISHELL_H
# include <stdio.h>
# include <readline/readline.h>
# include <unistd.h>
# include <stdlib.h>
# 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

View File

@@ -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);
}