@@ -17,49 +17,49 @@ RESET := \033[0m
1717# Declare phony targets (they don't produce files)
1818.PHONY : install-task install clean test marimo book fmt deptry help all
1919
20+ UV_INSTALL_DIR := "./bin"
21+
2022# #@ Bootstrap
2123install-task : # # ensure go-task (Taskfile) is installed
22- @mkdir -p ./bin;
23- # install task
24- @if command -v ./bin/task > /dev/null 2>&1 ; then \
25- printf " $( GREEN) task is already installed$( RESET) \n" ; \
26- else \
24+ @mkdir -p ${UV_INSTALL_DIR}
25+
26+ @if [ ! -x "${UV_INSTALL_DIR}/task" ]; then \
2727 printf "$(BLUE)Installing go-task (Taskfile)$(RESET)\n"; \
28- sh -c " $$ (curl --location https://taskfile.dev/install.sh)" -- -d -b ./bin; \
29- fi
30- # install uv
31- @if [ -x " ./bin/uv" ]; then \
32- printf " ${BLUE} [INFO] uv already present in ./bin, skipping installation${RESET} \n" ; \
33- else \
34- curl -LsSf https://astral.sh/uv/install.sh | UV_INSTALL_DIR=" ./bin" sh || { printf " ${RED} [ERROR] Failed to install uv${RESET} \n" ; exit 1; }; \
28+ curl --location https://taskfile.dev/install.sh | sh -s -- -d -b ${UV_INSTALL_DIR}; \
3529 fi
36- # verify task is installed
37- ./bin/task --version
30+
3831
3932install : install-task # # install
40- ./bin/task build:install
33+ @ ./bin/task build:install --silent
4134
4235clean : install-task # # clean
43- ./bin/task cleanup:clean
36+ @ ./bin/task cleanup:clean --silent
4437
4538# #@ Development and Testing
46- test : install # # run all tests
47- ./bin/task docs:test
39+ test : install-task # # run all tests
40+ @ ./bin/task docs:test --silent
4841
49- marimo : install # # fire up Marimo server
50- ./bin/task docs:marimo
42+ marimo : install-task # # fire up Marimo server
43+ @ ./bin/task docs:marimo --silent
5144
5245# #@ Documentation
53- book : test # # compile the companion book
54- ./bin/task docs:docs
55- ./bin/task docs:marimushka
56- ./bin/task docs:book
46+ book : install-task # # compile the companion book
47+ @./bin/task docs:test --silent
48+ @./bin/task docs:docs --silent
49+ @./bin/task docs:marimushka --silent
50+ @./bin/task docs:book --silent
5751
58- fmt : install # # check the pre-commit hooks and the linting
59- ./bin/task quality:lint
52+ fmt : install-task # # check the pre-commit hooks and the linting
53+ @ ./bin/task quality:lint --silent
6054
61- deptry : install # # check deptry
62- ./bin/task quality:deptry
55+ deptry : install-task # # run deptry if pyproject.toml exists
56+ @if [ -f pyproject.toml ]; then \
57+ ./bin/task build:uv --silent; \
58+ echo "→ Running deptry..."; \
59+ ./bin/task quality:deptry --silent; \
60+ else \
61+ echo "${GREEN} ⚠ Skipping deptry (no pyproject.toml)"; \
62+ fi
6363
6464all : fmt deptry test book # # Run everything
6565 echo " Run fmt, deptry, test and book"
0 commit comments