Skip to content

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