[roll] Roll fuchsia [ffx][fho] Properly support legacy machine output

The previous implementation of all of this didn't properly support
machine output from legacy plugins. It turns out that fixing this
required a fairly deep refactoring of fho because of assumptions about
how machine output state can be determined.

Many of those problems came from severing the `FfxTool` and `FfxMain`
traits from each other, which was done to make it so that FhoEnvironment
could be stored properly between them. We made that not necessary by
switching to using an Arc<dyn Injector> which let FhoEnvironment become
Clone, so this separation wasn't needed anymore and is undone here.

We also move building the 'main' object to happen earlier, simplifying a
bunch of things about the lifecycle of the object.

And last but not least, we break the `ToolRunner` implementation into
two separate ones, one that implements the tool and one that prints
metadata, rather than doing the switch between them late and awkwardly.

Original-Fixed: 125869
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/841458
Original-Revision: 5d75532914c885f72bc2a74fc485310d14a0537b
GitOrigin-RevId: b29b503240af6b964a07233a9a85292610d83625
Change-Id: I17693ccb6b6429315de59ba0e4a70a100bb02e71
1 file changed
tree: b1c36593354ca2931c0912946764452f6f7af620
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.