A simple command/argument manager with a simple API that makes it easy to build dynamic commands and dynamic arguments with computed values.

The Builder builds and manages commands. When a new Builder instance is created, it provides an simple API to create and execute commands, append and prepend dynamic arguments.

So instead of manually creating the following command in our CI pipeline, with dynamic arguments and dynamic values that need to be computed at runtime:

docker build . -t myimage:1.0.0 --label --label --label org.label-schema.vendor=Vendor --label org.label-schema.version=1.0.0 --label org.label-schema.schema-version=1.0.0-rc.1

You could create a simple JavaScript script and create complex commands with dynamic arguments (evaluated JavaScript functions) and version control it all with Git.