If you’re using a single entry point script (e.g. do.sh) and handling $1 you don’t get that for free.
And the moment you need to make your entry point script aware of “B requires A” then you’re going to half-bake something similar to make, anyway.
Here’s [1] my ~80 line version for Python projects (micromamba + uv) which I’ve been pretty happy with.
[1] https://github.com/giovannipcarvalho/micromamba.mk
bin/ also perfectly tab-autocompletes, don't understand what you mean.
If you're having only one bin/do.sh script -- you're doing it wrong.
And if you know $1 can only be either "prod" or "dev", then create scripts build-prod.sh and build-dev.sh.
Simpler, installed on all systems, no quirky syntax with tabs and phonys.
If you’re using a single entry point script (e.g. do.sh) and handling $1 you don’t get that for free.
And the moment you need to make your entry point script aware of “B requires A” then you’re going to half-bake something similar to make, anyway.
Here’s [1] my ~80 line version for Python projects (micromamba + uv) which I’ve been pretty happy with.
[1] https://github.com/giovannipcarvalho/micromamba.mk