In addition to running the initial or global setup process in one command, we should be able to run parts of setup separately as needed. For example, we could have separate scripts for pulling all the source code, running composer and npm, or running applications' setup scripts. Then setup.sh could call those scripts as needed.
Another reason for doing this is that setup.sh is getting kinda long (now more than 600 lines).
A new script that might be nice to add along the way would be one to update all source repos to the latest version of master. Are there others?