get_supported_examples.sh 972 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env bash
  2. set -o errexit
  3. set -o pipefail
  4. set -o nounset
  5. DEBUG_SHELL=${DEBUG_SHELL:-"0"}
  6. [ "${DEBUG_SHELL}" = "1" ] && set -x
  7. if [[ $# < 1 ]]; then
  8. echo "no target specified!" >&2
  9. exit -1
  10. fi
  11. cd $IDF_PATH/examples
  12. ALL_EXAMPLES=$( find . -type f -name CMakeLists.txt | grep -v "/components/" | grep -v "/common_components/" | grep -v "/main/" | grep -v "/idf_as_lib/stubs/" | sed "s/\/CMakeLists.txt//g" | sort )
  13. EXAMPLE_LIST=$( realpath --relative-to=. $ALL_EXAMPLES )
  14. for EXAMPLE in $EXAMPLE_LIST
  15. do
  16. SEARCHED=$( grep -E "SUPPORTED_TARGETS" $EXAMPLE/CMakeLists.txt | sed "s/set\s*(\s*SUPPORTED_TARGETS//g" | sed "s/)//g" ) || true
  17. if [[ $SEARCHED == "" ]]; then
  18. #when SUPPORTED_TARGETS not set, allow all targets implicitly
  19. echo "$EXAMPLE"
  20. else
  21. for TARGET in $SEARCHED
  22. do
  23. if [[ $TARGET == $1 ]]; then
  24. echo "$EXAMPLE"
  25. break
  26. fi
  27. done
  28. fi
  29. done