DOCKER=docker SRC_DATA=data/ SRC_COMPOSE=srcs/ OUT_DATA=$(HOME)/inception_data # TODO to change .ONESHELL : .SHELLFLAGS = -eu -c .PHONY : all run re data_install data_remove data_reinstall help ### pretty logs #### _ECHO = echoo(){ \ if [ -t 1 ]; then \ echo "\e[30;47;1m$$*\e[0m"; \ else \ echo "$$*"; \ fi; \ } ### rules ### ## Run the compose, installing the necessary data if necessary. all : data_install run ## Run the compose. run : @$(_ECHO) echoo "Running '$(SRC_COMPOSE)'..." echo "$ cd -- $(SRC_COMPOSE)" cd -- $(SRC_COMPOSE) echo "$ DATA=$(OUT_DATA) docker compose up --build" DATA=$(OUT_DATA) docker compose up --build ## Reinstall the data then run it again. re : data_reinstall run ## Install the necessary data if the directory doesn't exist yet. data_install : @$(_ECHO) echoo "Copy '$(SRC_DATA)' to '$(OUT_DATA)'..." if [ -d $(OUT_DATA) ]; then echo "'$(OUT_DATA)' already exists." else echo "$ cp -r -- $(SRC_DATA) $(OUT_DATA)" cp -r -- $(SRC_DATA) $(OUT_DATA) echo "$ chmod -R 0777 -- $(OUT_DATA)" chmod -R 0777 -- $(OUT_DATA) fi ## Remove the necessary data.. data_remove : @$(_ECHO) echoo "Remove '$(OUT_DATA)'..." echo "$ rm -rf -- $(OUT_DATA)" rm -rf -- $(OUT_DATA) ## Remove then reinstall the necessary data. data_reinstall : data_remove data_install ## Show help help : @$(_ECHO) echo "all Run the compose, installing the necessary data if necessary." echo "run Run the compose." echo "re Reinstall the data then run it again." echo "data_install Install the necessary data." echo "data_remove Remove the compose data." echo "data_reinstall Remove then reinstall the necessary data." echo "help this lol"