[ffx] Support direct connections with --core flag.

This updates the ffx behavior for handling connections and providing
FIDL protocols for developers. When passing the `--core` flag to a
command, non-daemon behavior will be put to use where possible.

For this initial pass, only `RemoteControlProxy` will be provided without
the daemon when the `--core` flag is given.

This defines a device connector trait that is implemented by a default
(ssh-only at the moment) connector that takes a target spec and resolves
it to an ssh-able address.

After completion of a command, if errors are encountered AND the
`--core` flag has been passed, the underlying ssh connection will be
inspected for errors, and they will be reported to the user to aid
in debugging.

Change-Id: I804eb78614753598be36d5f47c4dc91b8d49aac4
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1097107
Commit-Queue: Andrew Davies <awdavies@google.com>
Reviewed-by: Colin Nelson <colnnelson@google.com>
Reviewed-by: Clayton Wilkinson <wilkinsonclay@google.com>
11 files changed
tree: 6f833e462e963a69c038efe0d5beec3ac5b7bd18
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.