Zephyr: west grep

west (the Zephyr build tool) v 1.2 now has a grep command which will grep across all the modules (subprojects) pulled in. In the below example, notice it is searching in the main zephyr workspace and nanopb (modules/lib/nanopb) modules.

(pyvenv) [cbrake@ceres zephyr]$ west grep nanopb
=== manifest (zephyr):
MAINTAINERS.yml:"West project: nanopb":
MAINTAINERS.yml:    - modules/nanopb/
MAINTAINERS.yml:    - samples/modules/nanopb/
MAINTAINERS.yml:    - tests/modules/nanopb/
applications/zonit_mini_ats/CMakeLists.txt:list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
applications/zonit_mini_ats/CMakeLists.txt:include(nanopb)
applications/zonit_mini_ats/CMakeLists.txt:zephyr_nanopb_sources(app src/point.proto)
applications/zonit_mini_ats/sample.yaml:    - nanopb
doc/develop/manifest/index.rst:        west config manifest.project-filter -- +nanopb
doc/releases/release-notes-2.7.rst:* :github:`36038` - iotdk: the testcase samples/modules/nanopb can't build
doc/releases/release-notes-3.1.rst:* :github:`43505` - ``py`` command not found when using nanopb on windows
doc/releases/release-notes-3.2.rst:- :github:`47817` - samples/modules/nanopb/sample.modules.nanopb fails with protobuf > 3.19.0
doc/releases/release-notes-3.3.rst:* :github:`47817` - samples/modules/nanopb/sample.modules.nanopb fails with protobuf > 3.19.0
doc/releases/release-notes-3.5.rst:  * Added a separate nanopb.cmake file to be included by applications.
doc/releases/release-notes-3.5.rst:  * Added helper cmake function ``zephyr_nanopb_sources`` to simplify ``.proto`` file inclusion.
modules/nanopb/nanopb.cmake:and in path. See https://docs.zephyrproject.org/latest/samples/modules/nanopb/README.html")
modules/nanopb/nanopb.cmake:#   list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
modules/nanopb/nanopb.cmake:#   include(nanopb)
modules/nanopb/nanopb.cmake:#   zephyr_nanopb_sources(<target> <proto-files>)
modules/nanopb/nanopb.cmake:function(zephyr_nanopb_sources target)
modules/nanopb/nanopb.cmake:  # Turn off the default nanopb behavior
modules/nanopb/nanopb.cmake:  nanopb_generate_cpp(proto_srcs proto_hdrs RELPATH ${CMAKE_CURRENT_SOURCE_DIR} ${ARGN})
samples/modules/nanopb/CMakeLists.txt:project(nanopb_sample)
samples/modules/nanopb/CMakeLists.txt:list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
samples/modules/nanopb/CMakeLists.txt:include(nanopb)
samples/modules/nanopb/CMakeLists.txt:zephyr_nanopb_sources(app src/simple.proto)
samples/modules/nanopb/README.rst:.. _nanopb_sample:
samples/modules/nanopb/README.rst:   west config manifest.project-filter -- +nanopb
samples/modules/nanopb/README.rst:   :zephyr-app: samples/modules/nanopb
samples/modules/nanopb/sample.yaml:  name: Simple nanopb
samples/modules/nanopb/sample.yaml:    - nanopb
samples/modules/nanopb/sample.yaml:  sample.modules.nanopb:
samples/modules/nanopb/sample.yaml:      - nanopb
scripts/requirements-extras.txt:# used by nanopb module to generate sources from .proto files
submanifests/optional.yaml:    - name: nanopb
submanifests/optional.yaml:      path: modules/lib/nanopb
tests/modules/nanopb/CMakeLists.txt:project(nanopb_tests)
tests/modules/nanopb/CMakeLists.txt:list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
tests/modules/nanopb/CMakeLists.txt:include(nanopb)
tests/modules/nanopb/CMakeLists.txt:zephyr_nanopb_sources(app proto/simple.proto)
tests/modules/nanopb/CMakeLists.txt:zephyr_nanopb_sources(app
tests/modules/nanopb/src/main.c:ZTEST(nanopb_tests, test_nanopb_simple)
tests/modules/nanopb/src/main.c:ZTEST(nanopb_tests, test_nanopb_nested)
tests/modules/nanopb/src/main.c:ZTEST_SUITE(nanopb_tests, NULL, NULL, NULL, NULL, NULL);
tests/modules/nanopb/testcase.yaml:  libraries.nanopb:
tests/modules/nanopb/testcase.yaml:      - nanopb
tests/modules/nanopb/testcase.yaml:      - nanopb
=== nanopb (modules/lib/nanopb):
.github/workflows/binary_packages.yml:          path: nanopb
.github/workflows/binary_packages.yml:          cd nanopb
.github/workflows/binary_packages.yml:          openssl sha256 nanopb/dist/*.tar.gz
.github/workflows/binary_packages.yml:          path: nanopb/dist/*.tar.gz
.github/workflows/binary_packages.yml:          name: nanopb-binary-linux
.github/workflows/binary_packages.yml:          tar xzf nanopb/dist/*.tar.gz
.github/workflows/binary_packages.yml:          cd nanopb-*/tests
.github/workflows/binary_packages.yml:          cd nanopb-*/examples
.github/workflows/binary_packages.yml:          path: nanopb
.github/workflows/binary_packages.yml:          cd nanopb
.github/workflows/binary_packages.yml:          openssl sha256 nanopb/dist/*.zip