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

Support json output #1061

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

TylerWitt
Copy link

This supports passing a --json flag to mix hex.outdated for programmatic use.

In order to make the change a bit easier, I separated out 3 things. Previously, the task was laid out as a single vs all format, where both versions dealt with similar logic.

I split them in to three pieces.

  • process_lockfile -> This basically formats all the dependencies into a tuple {package, lock_version, latest_version, requirements, outdated?}
  • display_outdated -> This structures the view layer--either as a table (existing logic), or as json.
  • set_exit_code -> This sets the exit code based on whether things are outdated, and whether or not certain opts have been passed.

This unifies outdated dependency processing.

All behaviors should be the same, except for one edge case.

If there is only one dependency, the display will be the same as `single`. I'm not sure if that's an issue or not.

Assuming that the current UI is not meant to be programmatically accessed it should be fine.
Printed tables are hard to use programmatically.

This change will enable the ability to output the task as serialized json.
Showing the previous `single` view any time there was one dependency broke a test, so I reverted the change and now pass args to be able to detect if a single app was requested or not.
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.

1 participant