[roll] Roll fuchsia [ffx][config] Separate nested ops from value maps

This breaks up the logic around doing nested gets/sets/removes
from the logic that does mapping and string interpolation on
leaf Value files.

In the process, it removes the currying and cons-ish recursion
of the mapping functions, in favour of a more rust-y helper
trait nested_map that you can call on either an Option<Value>
or a ConfigValue, and then call with another mapping function.

I think it's really nice that this puts the order of the value
mapping operations in linear instead of reverse order to how
they actually run. I think it makes the code much less confusing.

The various nested_* things get moved again, this time to their
own module, as they no longer perform mapping operations
(other than NestedMap::nested_map, but I think it belongs with
the other nested functions).

Some of this restructuring may be useful to create a better
starting point for resolving fxb/101249, but this CL is not
intended to fix that on its own.

Another minor inclusion is adding a file processing argument
to the ffx-config-get arguments, which proved useful in finding
the last problems with this CL.

Original-Bug: 101249

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/690544
Original-Revision: 92935392aa828972a3d4f5bcd6aba261ed768907
GitOrigin-RevId: 72ae4d88b8a4b0a28d87f36519369b89823427f2
Change-Id: Ia8ccd9fbd6f635325cf907833b7ef2ba86a02877
1 file changed
tree: 6aaf19b3be8a0105a5c1cb5067514267a487e5e4
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. 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.