* FEATURE: add --tags and --skip-tags options
Allow config manifests to be tagged, so a pups run can apply a subset of run commands.
Update to ruby 3.2.
Lots of linting. Added rubocop lint exception for Eval.
Fixing test imports, update MiniTest::Test -> Minitest::Test.
When strings have been escaped and contain a space, we don't want to
quote them because the escape character is then treated as a literal.
For example:
```
$ export var1="hello there"
$ export var2="hello\ there"
$ export var3=hello\ there
$ printf "$var1\n$var2\n$var3\n"
hello there
hello\ there
hello there
```
The --gen-docker-env-args argument makes pups process any template
environment variables and generate the command line arguments suitable
for the docker run command. The intention is to expand support for
configuring container runtime into pups such that configuration
templates can be more generally useful.
Bash special characters are safely escaped. This prevents issues where
variables contain special characters that are parsed by the calling shell.
A script which uses the pups output may have unexpected side effects
without escaping the special characters.
Note that only `env`, `label`, and `volume` config variables are escaped
as these are the most likely to contain special chacters. No attempt is
made to validate config variables against the allowed characters by
docker itself.
Other changes:
- Change some exit calls to return to prevent the tests prematurely
exiting.