powerline and exit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
minishell
|
||||
.objs/*
|
||||
17
Makefile
17
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
|
||||
|
||||
17
minishell.h
17
minishell.h
@@ -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
|
||||
|
||||
34
srcs/main.c
34
srcs/main.c
@@ -1,4 +1,38 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user