Issue
Progress bars should not be going to stdout, they need to go to stdout
How to replicate
1. Run a command with the --wait flag and pipe the output to a file
civo bucket create --wait -o json test-bucket > test
2. Inspect the file we just created:
Output:
% cat test
{"access_key":"xx","id":"9076386c-eda9-4eab-a995-7ba1aa92d3a5","name":"test-bucket"}
Looks normal? Except that it isn't, for example try the following command:
Output:
tempo-tutorial % jq -r .access_key < test
jq: parse error: Invalid numeric literal at line 1, column 3
That should no possible? Why is this command not working in this perfectly valid json?
Because of the non-printable characters
3. Inspect the file for non printable characters
output:
% cat -v test
^M^[[KCreating an Object Store with maxSize 500, called test-bucket... | ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^M^[[KCreating an Object Store with maxSize 500, called test-bucket... / ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^?^?^?^?^?^?^?
...
Aceptance Criteria
- Send the progress bar to stderr.
- Consider having a global
--silent flag for this type of output. There are situations, such as scripts where the user may want to silence this output. Sending it to stderr makes this a lot easier though, so this second part is not strictly needed
Issue
Progress bars should not be going to stdout, they need to go to stdout
How to replicate
1. Run a command with the
--waitflag and pipe the output to a file2. Inspect the file we just created:
cat testOutput:
Looks normal? Except that it isn't, for example try the following command:
Output:
That should no possible? Why is this command not working in this perfectly valid json?
Because of the non-printable characters
3. Inspect the file for non printable characters
cat -v testoutput:
Aceptance Criteria
--silentflag for this type of output. There are situations, such as scripts where the user may want to silence this output. Sending it to stderr makes this a lot easier though, so this second part is not strictly needed