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

Better format for cage source ls #63

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Better format for cage source ls #63

wants to merge 2 commits into from

Conversation

erithmetic
Copy link
Contributor

@erithmetic erithmetic commented Dec 12, 2016

I've found that the display format of the old cage source ls was difficult to grok at a glance.

Here's a new, one-row-per-service format:

caladan:rails_hello dkastner$ cargo run source ls
  SERVICE        IMAGE                 STATUS      LOCAL   REMOTE
  coffee-rails                         unmounted           https://github.com/rails/coffee-rails.git
  rails_hello    faraday/rails_hello   unmounted           https://github.com/faradayio/rails_hello.git
caladan:rails_hello dkastner$ cargo run source clone coffee-rails
Cloning into '/Users/dkastner/cage/examples/rails_hello/src/coffee-rails'...
caladan:rails_hello dkastner$ cargo run source ls
  SERVICE        IMAGE                 STATUS      LOCAL              REMOTE
  coffee-rails                         mounted     src/coffee-rails   https://github.com/rails/coffee-rails.git
  rails_hello    faraday/rails_hello   unmounted                      https://github.com/faradayio/rails_hello.git

@erithmetic
Copy link
Contributor Author

...aaaand looks like I need to fix the mount check :(

@erithmetic
Copy link
Contributor Author

OK, fixed mounted check

@seamusabshere
Copy link
Member

@dkastner what did the old format look like for comparison?

@erithmetic
Copy link
Contributor Author

@seamusabshere

dkastner@arrakis:~/cage/examples/rails_hello$ cage source ls
coffee-rails              https://github.com/rails/coffee-rails.git
  Available at src/coffee-rails (mounted)
rails_hello               https://github.com/faradayio/rails_hello.git

The "mounted" note is hard to see at a glance. Also, the multiline format makes it hard to grep

@seamusabshere
Copy link
Member

this looks great to me!

@emk
Copy link
Contributor

emk commented Dec 13, 2016

I'm not a huge fan of massive, multi-column tables that wrap on 80-character terminals. Can we think of any alternate ways to present this information? I'd be OK with two formats, one for writing to TTYs and one for writing to pipes, or a JSON format that could be passed to jq.

@erithmetic
Copy link
Contributor Author

This is the same kind of format docker ps uses

@emk
Copy link
Contributor

emk commented Dec 14, 2016

@dkastner The fact that Docker displays tables that don't respect terminal width limits the way regular ps does is my single least favorite thing about Docker. 🙁 I would love to find something better.

@emk
Copy link
Contributor

emk commented Sep 26, 2017

I spoke with @dkastner about this again today, and I'm still leaning against supporting >80 char table output.

Instead, it might be possible to do something like the following:

sudo npm install -g json2csv
cargo install xsv

...and adding a --json flag to cage, allowing:

cage source ls --json | json2csv -f name,mounted | xsv table

(Optionally, jq could be used for more complicated filtering and transforms.)

However, this raises a related workflow issue, which is that we need some super-easy way to list just the mounted sources. I'd also be happy to support:

# One of the following?
cage source ls --mounted
cage source mounted

...or any reasonable variation on that theme.

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

Successfully merging this pull request may close these issues.

3 participants