dup2_close and makefile charging bar

This commit is contained in:
Jack Halford 2017-02-07 16:21:56 +01:00
parent 4a673515ad
commit 4438a7e1dd
3 changed files with 61 additions and 20 deletions

View file

@ -1,15 +1,25 @@
NAME = libft.a # **************************************************************************** #
CC = gcc # #
AR = ar -rc # ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: jhalford <jack@crans.org> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2017/02/07 16:09:36 by jhalford #+# #+# #
# Updated: 2017/02/07 16:13:25 by jhalford ### ########.fr #
# #
# **************************************************************************** #
MKDIR = mkdir -p NAME = libft.a
RM = /bin/rm -rf
CC = gcc
AR = ar -rc
MKDIR = mkdir -p
RM = /bin/rm -rf
FLAGS = -Wall -Wextra -Werror FLAGS = -Wall -Wextra -Werror
D_FLAGS = -g D_FLAGS = -g
LEN_NAME = `printf "%s" $(NAME) |wc -c` DELTA = $$(echo "$$(tput cols)-47"|bc)
DELTA = $$(echo "$$(tput cols)-24-$(LEN_NAME)"|bc)
SRC_DIR = src/ SRC_DIR = src/
INC_DIR = includes/ INC_DIR = includes/
@ -167,6 +177,7 @@ str/ft_strsplit.c\
str/ft_strstr.c\ str/ft_strstr.c\
str/ft_strsub.c\ str/ft_strsub.c\
str/ft_strtrim.c\ str/ft_strtrim.c\
sys/dup2_close.c\
time/ft_mytime_free.c\ time/ft_mytime_free.c\
time/ft_mytime_get.c\ time/ft_mytime_get.c\
time/ft_time_isrecent.c\ time/ft_time_isrecent.c\
@ -175,24 +186,31 @@ xattr/ft_xattr_print.c
SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE)) SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE))
OBJS = $(addprefix $(OBJ_DIR), $(SRC_BASE:.c=.o)) OBJS = $(addprefix $(OBJ_DIR), $(SRC_BASE:.c=.o))
NB = $(words $(SRC_BASE))
INDEX = 0
all: $(NAME) all: $(NAME)
$(OBJ_DIR)%.o: $(SRC_DIR)%.c | $(OBJ_DIR)
@$(MKDIR) $(OBJ_DIR)
@$(CC) $(FLAGS) $(D_FLAGS) -MMD -c $< -o $@\
-I $(INC_DIR)
@printf "\r\033[38;5;11m⌛ MAKE %s plz wait : %*s\033[0m\033[K" $(NAME) $(DELTA) "$@"
$(OBJ_DIR):
@$(MKDIR) $(OBJ_DIR)
@$(MKDIR) $(dir $(OBJS))
$(NAME): $(OBJ_DIR) $(OBJS) $(NAME): $(OBJ_DIR) $(OBJS)
@$(AR) $(NAME) $(OBJS) @$(AR) $(NAME) $(OBJS)
@ranlib $(NAME) @ranlib $(NAME)
@echo "\r\033[48;5;15;38;5;25m✅ MAKE $(NAME)\033[0m\033[K" @echo "\r\033[48;5;15;38;5;25m✅ MAKE $(NAME)\033[0m\033[K"
$(OBJ_DIR)%.o: $(SRC_DIR)%.c | $(OBJ_DIR)
@$(eval DONE=$(shell echo $$(($(INDEX)*20/$(NB)))))
@$(eval PERCENT=$(shell echo $$(($(INDEX)*100/$(NB)))))
@$(eval COLOR=$(shell echo $$(($(PERCENT)%35+196))))
@$(eval TO_DO=$(shell echo $$((20-$(INDEX)*20/$(NB)))))
@printf "\r\033[38;5;11m⌛ MAKE %10.10s : %2d%% \033[48;5;%dm%*s\033[0m%*s\033[48;5;255m \033[0m \033[38;5;11m %*s\033[0m\033[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@"
@$(MKDIR) $(OBJ_DIR)
@$(CC) $(FLAGS) $(D_FLAGS) -MMD -c $< -o $@\
-I $(INC_DIR)
@$(eval INDEX=$(shell echo $$(($(INDEX)+1))))
$(OBJ_DIR):
@$(MKDIR) $(OBJ_DIR)
@$(MKDIR) $(dir $(OBJS))
clean: clean:
@$(RM) $(OBJ_DIR) @$(RM) $(OBJ_DIR)
@echo "\r\033[38;5;202m✖ clean $(NAME).\033[0m\033[K" @echo "\r\033[38;5;202m✖ clean $(NAME).\033[0m\033[K"

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ /* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */
/* Updated: 2017/02/03 16:08:41 by jhalford ### ########.fr */ /* Updated: 2017/02/07 16:12:40 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -156,7 +156,8 @@ char *ft_path_notdir(char *path);
int ft_printf(const char *format, ...); int ft_printf(const char *format, ...);
int ft_dprintf(int fd, const char *format, ...); int ft_dprintf(int fd, const char *format, ...);
char *ft_getenv(char **env, char *key);
void *ft_realloc(void *data, int size); void *ft_realloc(void *data, int size);
char *ft_getenv(char **env, char *key);
int dup2_close(int fd1, int fd2);
#endif #endif

View file

@ -0,0 +1,22 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* dup2_close.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/02/07 16:07:28 by jhalford #+# #+# */
/* Updated: 2017/02/07 16:15:52 by jhalford ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
int dup2_close(int fd1, int fd2)
{
if (dup2(fd1, fd2))
return (-1);
if (close(fd1))
return (-1);
return (0);
}