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
|
WFLAGS = -Wall -Werror -Wextra -g -g3 -ggdb
|
||||||
|
LINK = -lreadline
|
||||||
|
|
||||||
SRCDIR = srcs
|
SRCDIR = srcs
|
||||||
OBJDIR = .objs
|
OBJDIR = .objs
|
||||||
|
BONUS_OBJDIR = bonus_objs
|
||||||
INCDIR = .
|
INCDIR = .
|
||||||
LIBFT_DIR = lib/libft
|
LIBFT_DIR = lib/libft
|
||||||
|
|
||||||
NAME = minishell
|
NAME = minishell
|
||||||
|
LIBFT = $(LIBFT_DIR)/libft.a
|
||||||
|
|
||||||
SRCS = $(shell find $(SRCDIR) -name "*.c")
|
SRCS = $(shell find $(SRCDIR) -name "*.c")
|
||||||
OBJS = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRCS))
|
OBJS = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRCS))
|
||||||
@@ -19,19 +22,25 @@ RESET = \033[0m
|
|||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
|
|
||||||
|
$(LIBFT):
|
||||||
|
@make -C $(LIBFT_DIR) all
|
||||||
|
|
||||||
$(OBJDIR)/%.o: $(SRCDIR)/%.c
|
$(OBJDIR)/%.o: $(SRCDIR)/%.c
|
||||||
@mkdir -p $(dir $@)
|
@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)
|
$(NAME): $(LIBFT) $(OBJS)
|
||||||
@$(CC) $(WFLAGS) $(OBJS) -o $(NAME)
|
@$(CC) $(WFLAGS) $(OBJS) $(LIBFT) -o $(NAME) $(LINK)
|
||||||
@echo "$(CYAN)Build completed: $(NAME)$(RESET)"
|
@echo "$(CYAN)Build completed: $(NAME)$(RESET)"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -rf $(OBJDIR)
|
@rm -rf $(OBJDIR)
|
||||||
|
@make -C $(LIBFT_DIR) clean
|
||||||
@echo "$(CYAN)Project cleaned$(RESET)"
|
@echo "$(CYAN)Project cleaned$(RESET)"
|
||||||
|
|
||||||
fclean: clean
|
fclean: clean
|
||||||
|
@make -C $(LIBFT_DIR) fclean
|
||||||
|
@rm $(NAME)
|
||||||
@echo "$(CYAN)Executable removed$(RESET)"
|
@echo "$(CYAN)Executable removed$(RESET)"
|
||||||
|
|
||||||
re: fclean all
|
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)
|
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