I was browsing through the source code of
Tom Christie's typesystem
library and discovered
that the shell scripts of
the project don't have any extensions attached to them. At first, I found it odd, and
then it all started to make sense.
Executable scripts can be written in any language and the users don't need to care about that. Also, not gonna lie, it looks cleaner this way.
GitHub uses this pattern successfully to normalize their scripts. According to the pattern, every project should
have a folder named scripts
with a subset or superset of the following files:
script/bootstrap
– installs/updates all dependenciesscript/setup
– sets up a project to be used for the first timescript/update
– updates a project to run at its current versionscript/server
– starts appscript/test
– runs testsscript/cibuild
– invoked by continuous integration servers to run testsscript/console
– opens a console