Bash Script is much more portable than Gradle, Rake, npm (package.json) or even Makefile.
So, I prefer to place a handy bash command to any project. Refer these code blow as examples:
Then, place symlink to the script like
ln -s script/el.bash el which makes easier to perform the command.
The point is dynamic call in bash. We can check function declaration by
"$(type -t $1)" = "function" and call it safely. This makes your bash much more extensible with keeping readability.
Though, as you might notice, this approach is only worth for Unix-like system users.