pw_cli: Print tab completions for pw commands

- Adds simple argparse options based tab completion for bash and zsh
- Completions for pw options and subcommands
- Completions for pw build options, presubmit steps and recipes

Change-Id: I651e29a1d9bfb79f17d0656ee97f4a54fd4e044b
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160032
Reviewed-by: Taylor Cramer <cramertj@google.com>
Commit-Queue: Anthony DiGirolamo <tonymd@google.com>
16 files changed
tree: 3a5e6a80500a85d40449e4c69030d93bada6857f
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. pw_alignment/
  7. pw_allocator/
  8. pw_analog/
  9. pw_android_toolchain/
  10. pw_arduino_build/
  11. pw_assert/
  12. pw_assert_basic/
  13. pw_assert_log/
  14. pw_assert_tokenized/
  15. pw_assert_zephyr/
  16. pw_async/
  17. pw_async_basic/
  18. pw_base64/
  19. pw_bloat/
  20. pw_blob_store/
  21. pw_bluetooth/
  22. pw_bluetooth_hci/
  23. pw_bluetooth_profiles/
  24. pw_boot/
  25. pw_boot_cortex_m/
  26. pw_build/
  27. pw_build_info/
  28. pw_build_mcuxpresso/
  29. pw_bytes/
  30. pw_checksum/
  31. pw_chrono/
  32. pw_chrono_embos/
  33. pw_chrono_freertos/
  34. pw_chrono_stl/
  35. pw_chrono_threadx/
  36. pw_chrono_zephyr/
  37. pw_cli/
  38. pw_compilation_testing/
  39. pw_console/
  40. pw_containers/
  41. pw_cpu_exception/
  42. pw_cpu_exception_cortex_m/
  43. pw_crypto/
  44. pw_digital_io/
  45. pw_digital_io_mcuxpresso/
  46. pw_docgen/
  47. pw_doctor/
  48. pw_env_setup/
  49. pw_file/
  50. pw_function/
  51. pw_fuzzer/
  52. pw_hdlc/
  53. pw_hex_dump/
  54. pw_i2c/
  55. pw_i2c_linux/
  56. pw_i2c_mcuxpresso/
  57. pw_ide/
  58. pw_interrupt/
  59. pw_interrupt_cortex_m/
  60. pw_interrupt_zephyr/
  61. pw_intrusive_ptr/
  62. pw_kvs/
  63. pw_libc/
  64. pw_log/
  65. pw_log_android/
  66. pw_log_basic/
  67. pw_log_null/
  68. pw_log_rpc/
  69. pw_log_string/
  70. pw_log_tokenized/
  71. pw_log_zephyr/
  72. pw_malloc/
  73. pw_malloc_freelist/
  74. pw_metric/
  75. pw_minimal_cpp_stdlib/
  76. pw_module/
  77. pw_multisink/
  78. pw_package/
  79. pw_perf_test/
  80. pw_persistent_ram/
  81. pw_polyfill/
  82. pw_preprocessor/
  83. pw_presubmit/
  84. pw_protobuf/
  85. pw_protobuf_compiler/
  86. pw_random/
  87. pw_result/
  88. pw_ring_buffer/
  89. pw_router/
  90. pw_rpc/
  91. pw_rpc_transport/
  92. pw_rust/
  93. pw_snapshot/
  94. pw_software_update/
  95. pw_span/
  96. pw_spi/
  97. pw_spi_mcuxpresso/
  98. pw_status/
  99. pw_stm32cube_build/
  100. pw_stream/
  101. pw_stream_uart_linux/
  102. pw_stream_uart_mcuxpresso/
  103. pw_string/
  104. pw_symbolizer/
  105. pw_sync/
  106. pw_sync_baremetal/
  107. pw_sync_embos/
  108. pw_sync_freertos/
  109. pw_sync_stl/
  110. pw_sync_threadx/
  111. pw_sync_zephyr/
  112. pw_sys_io/
  113. pw_sys_io_arduino/
  114. pw_sys_io_baremetal_lm3s6965evb/
  115. pw_sys_io_baremetal_stm32f429/
  116. pw_sys_io_emcraft_sf2/
  117. pw_sys_io_mcuxpresso/
  118. pw_sys_io_pico/
  119. pw_sys_io_stdio/
  120. pw_sys_io_stm32cube/
  121. pw_sys_io_zephyr/
  122. pw_system/
  123. pw_target_runner/
  124. pw_thread/
  125. pw_thread_embos/
  126. pw_thread_freertos/
  127. pw_thread_stl/
  128. pw_thread_threadx/
  129. pw_thread_zephyr/
  130. pw_tls_client/
  131. pw_tls_client_boringssl/
  132. pw_tls_client_mbedtls/
  133. pw_tokenizer/
  134. pw_tool/
  135. pw_toolchain/
  136. pw_trace/
  137. pw_trace_tokenized/
  138. pw_transfer/
  139. pw_unit_test/
  140. pw_unit_test_zephyr/
  141. pw_varint/
  142. pw_watch/
  143. pw_web/
  144. pw_work_queue/
  145. seed/
  146. targets/
  147. third_party/
  148. ts/
  149. zephyr/
  150. .bazelignore
  151. .bazelrc
  152. .black.toml
  153. .clang-format
  154. .clang-tidy
  155. .eslintrc.json
  156. .git-blame-ignore-revs
  157. .gitattributes
  158. .gitignore
  159. .gn
  160. .mypy.ini
  161. .prettierrc.js
  162. .pw_ide.yaml
  163. .pylintrc
  164. activate.bat
  165. Android.bp
  166. AUTHORS
  167. bootstrap.bat
  168. bootstrap.sh
  169. BUILD.bazel
  170. BUILD.gn
  171. BUILDCONFIG.gn
  172. CMakeLists.txt
  173. jest.config.ts
  174. Kconfig.zephyr
  175. LICENSE
  176. modules.gni
  177. OWNERS
  178. package-lock.json
  179. package.json
  180. pigweed.json
  181. PIGWEED_MODULES
  182. README.md
  183. rollup.config.js
  184. tsconfig.json
  185. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links