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 · 5 comments
Open

Progress bars must go to stderr, not stdout #388

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

Comments

@fernando-villalba
Copy link
Contributor

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
@uzaxirr
Copy link
Member

uzaxirr commented Sep 25, 2024

@dipu989 if you wish to contribute you can pick this one.

@dipu989
Copy link
Contributor

dipu989 commented Sep 25, 2024

@uzaxirr Thanks for recommending this, I will pick it up 🚀

@dipu989
Copy link
Contributor

dipu989 commented Sep 30, 2024

@uzaxirr I’ll be picking these up after a week. If anyone else wants to take them on in the meantime, feel free!
Otherwise, I'll resume once I'm back.

@uzaxirr
Copy link
Member

uzaxirr commented Oct 9, 2024

@dipu989 will u be working on it?

@dipu989
Copy link
Contributor

dipu989 commented Oct 16, 2024

@uzaxirr Yes, I have raised a PR for this just now. PR link
Please review.

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

3 participants