-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Most projects I've worked on included a bunch of scripts for common tasks (installing dependencies, starting/stopping dev servers, testing and deploying changes, and so on). There are a few tools designed for this, such as Just (https://just.systems/) and Task (https://taskfile.dev/), and I know some people use Make as a task runner (e.g. https://news.ycombinator.com/item?id=40333481), but I've always preferred the simplicity and universality of shell scripts.
Bin CLI is a tool I wrote to add some of the niceties of these tools to shell scripts: it works even when you're currently in a subdirectory, only requires you to type enough of the command (script) name to uniquely identify it, and allows aliases to be defined. It also allows a project's commands to be listed (along with some help text), supports subcommands, and supports tab completion of command names. Of course scripts can be written in other languages too, just by adding the appropriate shebang.
Collaborators/contributors who don't have Bin CLI installed can just run the scripts directly - so I can enjoy the benefits without adding a hard dependency or extra barrier to entry. However, I also added support for defining one-liner scripts/aliases in a config file (much like "npm run" scripts are defined in package.json) for times when I want to avoid creating many trivial/wrapper scripts for common tasks.
It is implemented as a single Bash script, with minimal dependencies, small enough to keep in my Dotfiles repo (62 KB). I also made .deb and .rpm packages so it can easily be installed system-wide.
-
Most projects I've worked on included a bunch of scripts for common tasks (installing dependencies, starting/stopping dev servers, testing and deploying changes, and so on). There are a few tools designed for this, such as Just (https://just.systems/) and Task (https://taskfile.dev/), and I know some people use Make as a task runner (e.g. https://news.ycombinator.com/item?id=40333481), but I've always preferred the simplicity and universality of shell scripts.
Bin CLI is a tool I wrote to add some of the niceties of these tools to shell scripts: it works even when you're currently in a subdirectory, only requires you to type enough of the command (script) name to uniquely identify it, and allows aliases to be defined. It also allows a project's commands to be listed (along with some help text), supports subcommands, and supports tab completion of command names. Of course scripts can be written in other languages too, just by adding the appropriate shebang.
Collaborators/contributors who don't have Bin CLI installed can just run the scripts directly - so I can enjoy the benefits without adding a hard dependency or extra barrier to entry. However, I also added support for defining one-liner scripts/aliases in a config file (much like "npm run" scripts are defined in package.json) for times when I want to avoid creating many trivial/wrapper scripts for common tasks.
It is implemented as a single Bash script, with minimal dependencies, small enough to keep in my Dotfiles repo (62 KB). I also made .deb and .rpm packages so it can easily be installed system-wide.
Related posts
-
Any recommendations for CLI wrappers?
-
New blog post about makefiles being used in modern development. Link is listed below in case you wanted to check it out.
-
Does anyone feel that there’s so many CI/CD tools that it’s impossible to keep up with?
-
Why I Switched from Makefile to Taskfile
-
Alternatives to Makefiles written in Go