Skip to content

Progress bars must go to stderr, not stdout #388

@fernando-villalba

Description

@fernando-villalba

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:

cat test

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:

jq -r .access_key < test

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

cat -v test

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions