When spinning and the dnsdock image has not been pulled, the output will be populated with results from pulling and starting up the dnsdock container on clean machines.
HELP WANTED
This issue is a great opportunity to learn Golang, the contribution workflow of rig, and incidentally improve rig!
Example
Goal
Only show this output in verbose mode, where the lack of a spinner will also make it look much cleaner.
Notes
rig start sets up dns support with operations from the rig dns command, check out ./commands/dns.go
All the executed commands in dns.go appear to use our util.StreamCommand() method from ./util/shell_exec.go. This command is supposed to hide the output from execution unless verbose mode is in use. Is that behavior broken?
If not, why do we see the interrupting output? Could docker run be using stderr to output this content? If so, we can have these commands redirect stderr to stdout (e.g., 2>&1) but how do we correctly surface error content if the command fails?
Testing
Use docker-compose run --rm compile to confirm your code compiles.
Use docker-compose run --rm lint to apply the full suite of static analysis tools. If there is a failure, you aren't done yet!
You can use the binary resulting from the compilation step (located in ./build/darwin/rig) to test that rig dns still works.
Reproduce this result by removing the dnsdock image, forcing it to be re-pulled when you next run rig dns. It may be tricky to use Outrigger without dns running, the heavy-handed workaround is to spin up a separate docker-machine, as the docker images are stored per VM.
When spinning and the dnsdock image has not been pulled, the output will be populated with results from pulling and starting up the dnsdock container on clean machines.
Example
Goal
Only show this output in verbose mode, where the lack of a spinner will also make it look much cleaner.
Notes
rig start
sets up dns support with operations from therig dns
command, check out ./commands/dns.goutil.StreamCommand()
method from ./util/shell_exec.go. This command is supposed to hide the output from execution unless verbose mode is in use. Is that behavior broken?Testing
docker-compose run --rm compile
to confirm your code compiles.docker-compose run --rm lint
to apply the full suite of static analysis tools. If there is a failure, you aren't done yet!./build/darwin/rig
) to test that rig dns still works.rig dns
. It may be tricky to use Outrigger without dns running, the heavy-handed workaround is to spin up a separate docker-machine, as the docker images are stored per VM.