Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progress bars must go to stderr, not stdout #388

Open
fernando-villalba opened this issue Apr 25, 2024 · 0 comments
Open

Progress bars must go to stderr, not stdout #388

fernando-villalba opened this issue Apr 25, 2024 · 0 comments

Comments

@fernando-villalba
Copy link

fernando-villalba commented Apr 25, 2024

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant