| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | #!/bin/bashfunction build_examples(){  excludes=("$@")  # track the exit code for this platform  local exit_code=0  # loop through results and add them to the array  examples=($(find $PWD/examples/ -name "*.pde" -o -name "*.ino"))  # get the last example in the array  local last="${examples[@]:(-1)}"  # loop through example sketches  for example in "${examples[@]}"; do    # store the full path to the example's sketch directory    local example_dir=$(dirname $example)    # store the filename for the example without the path    local example_file=$(basename $example)    # skip files listed as excludes    for exclude in "${excludes[@]}"; do        if [ "${example_file}" == "${exclude}" ] ; then            echo ">>>>>>>>>>>>>>>>>>>>>>>> Skipping ${example_file} <<<<<<<<<<<<<<<<<<<<<<<<<<"            continue 2        fi    done        echo "$example_file: "    local sketch="$example_dir/$example_file"    echo "$sketch"    #arduino -v --verbose-build --verify $sketch    # verify the example, and save stdout & stderr to a variable    # we have to avoid reading the exit code of local:    # "when declaring a local variable in a function, the local acts as a command in its own right"    local build_stdout    build_stdout=$(arduino --verify $sketch 2>&1)    # echo output if the build failed    if [ $? -ne 0 ]; then      # heavy X      echo -e "\xe2\x9c\x96"      echo -e "----------------------------- DEBUG OUTPUT -----------------------------\n"      echo "$build_stdout"      echo -e "\n------------------------------------------------------------------------\n"      # mark as fail      exit_code=1    else      # heavy checkmark      echo -e "\xe2\x9c\x93"    fi  done  return $exit_code}
 |