diff --git a/Makefile b/Makefile index a2417f5..1503a9f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# git helper Makefile: Version 2.2 (2025-08-10) +# git helper Makefile: Version 2.5 (2025-08-11) default: help .ONESHELL: @@ -36,21 +36,52 @@ init: print_head echo -e "\033[1;33mInitialising git submodules...\e[0m" git submodule init git submodule update + echo fi # Init submodules SUBDIRS=$$(find . -maxdepth 2 -mindepth 2 -name Makefile | sort) for subdir in $$SUBDIRS; do $(MAKE) --no-print-directory -C $$(dirname $$subdir) init done - if [[ $$SUBDIRS ]]; then + if [[ $$SUBDIRS = *[![:space:]]* ]]; then $(MAKE) print_head fi # Create venv if needed if [[ -e $(VENV_FLAG) ]]; then - if [[ ! -e $(VENV_FOLDER) ]]; then - echo -e "\033[1;33mCreating virtual env...\e[0m" - mkvenv + BASEPATH=$$(pwd -P) + # + # Create venv + # + if [ ! -e venv ];then + echo -e "\033[1;33mCreating venv in $$BASEPATH...\e[0m" + python3 -m venv $$BASEPATH/venv > /dev/null 2>&1 + else + echo -e "\033[1;33mVirtualenv already exists in $$BASEPATH...\e[0m" fi + echo + + # + # Install modules + # + echo -e "\033[1;33mInstalling modules to venv in $$BASEPATH...\e[0m" + for req_file in $$(find -L $$BASEPATH -name requirements.txt 2> /dev/null); do + # echo " $$req_file" + while read req_mod; do + if [[ $$req_mod = *[![:space:]]* ]]; then + # req_mod is not empty + OUT=$$($$BASEPATH/venv/bin/pip install -U $$req_mod 2>&1 ) + if [[ $$OUT =~ "Successfully installed" ]]; then + echo -e " * \033[1;32m$$req_mod installed.\e[0m" + elif [[ $$OUT =~ "already satisfied" ]]; then + echo -e " * \033[1;36m$$req_mod already installed.\e[0m" + else + echo -e " * \033[1;31m$$req_mod installation FAILED!\e[0m" + #echo $$OUT + fi + fi + done < $$req_file + done + echo fi # Start local init echo -e "\033[1;33mDoing localinit...\e[0m" @@ -100,4 +131,3 @@ print_head: echo -ne "╚═" for i in $$(seq 1 $$DIRLENGTH); do echo -n "═"; done echo -e "═╝\033[00m" -