|  | #!/bin/bash | 
|  | # Created with package:mono_repo v6.6.0 | 
|  |  | 
|  | # Support built in commands on windows out of the box. | 
|  | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") | 
|  | # then "flutter" is called instead of "pub". | 
|  | # This assumes that the Flutter SDK has been installed in a previous step. | 
|  | function pub() { | 
|  | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then | 
|  | command flutter pub "$@" | 
|  | else | 
|  | command dart pub "$@" | 
|  | fi | 
|  | } | 
|  | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") | 
|  | # then "flutter" is called instead of "pub". | 
|  | # This assumes that the Flutter SDK has been installed in a previous step. | 
|  | function format() { | 
|  | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then | 
|  | command flutter format "$@" | 
|  | else | 
|  | command dart format "$@" | 
|  | fi | 
|  | } | 
|  | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") | 
|  | # then "flutter" is called instead of "pub". | 
|  | # This assumes that the Flutter SDK has been installed in a previous step. | 
|  | function analyze() { | 
|  | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then | 
|  | command flutter analyze "$@" | 
|  | else | 
|  | command dart analyze "$@" | 
|  | fi | 
|  | } | 
|  |  | 
|  | if [[ -z ${PKGS} ]]; then | 
|  | echo -e '\033[31mPKGS environment variable must be set! - TERMINATING JOB\033[0m' | 
|  | exit 64 | 
|  | fi | 
|  |  | 
|  | if [[ "$#" == "0" ]]; then | 
|  | echo -e '\033[31mAt least one task argument must be provided! - TERMINATING JOB\033[0m' | 
|  | exit 64 | 
|  | fi | 
|  |  | 
|  | SUCCESS_COUNT=0 | 
|  | declare -a FAILURES | 
|  |  | 
|  | for PKG in ${PKGS}; do | 
|  | echo -e "\033[1mPKG: ${PKG}\033[22m" | 
|  | EXIT_CODE=0 | 
|  | pushd "${PKG}" >/dev/null || EXIT_CODE=$? | 
|  |  | 
|  | if [[ ${EXIT_CODE} -ne 0 ]]; then | 
|  | echo -e "\033[31mPKG: '${PKG}' does not exist - TERMINATING JOB\033[0m" | 
|  | exit 64 | 
|  | fi | 
|  |  | 
|  | dart pub upgrade || EXIT_CODE=$? | 
|  |  | 
|  | if [[ ${EXIT_CODE} -ne 0 ]]; then | 
|  | echo -e "\033[31mPKG: ${PKG}; 'dart pub upgrade' - FAILED  (${EXIT_CODE})\033[0m" | 
|  | FAILURES+=("${PKG}; 'dart pub upgrade'") | 
|  | else | 
|  | for TASK in "$@"; do | 
|  | EXIT_CODE=0 | 
|  | echo | 
|  | echo -e "\033[1mPKG: ${PKG}; TASK: ${TASK}\033[22m" | 
|  | case ${TASK} in | 
|  | analyze_0) | 
|  | echo 'dart analyze --fatal-infos .' | 
|  | dart analyze --fatal-infos . || EXIT_CODE=$? | 
|  | ;; | 
|  | analyze_1) | 
|  | echo 'dart analyze .' | 
|  | dart analyze . || EXIT_CODE=$? | 
|  | ;; | 
|  | command) | 
|  | echo 'Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &' | 
|  | Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & || EXIT_CODE=$? | 
|  | ;; | 
|  | format) | 
|  | echo 'dart format --output=none --set-exit-if-changed .' | 
|  | dart format --output=none --set-exit-if-changed . || EXIT_CODE=$? | 
|  | ;; | 
|  | test_0) | 
|  | echo 'dart test test/build/ensure_version_test.dart' | 
|  | dart test test/build/ensure_version_test.dart || EXIT_CODE=$? | 
|  | ;; | 
|  | test_1) | 
|  | echo 'dart test --tags=extension' | 
|  | dart test --tags=extension || EXIT_CODE=$? | 
|  | ;; | 
|  | test_2) | 
|  | echo 'dart test --total-shards 3 --shard-index 0 --exclude-tags=extension' | 
|  | dart test --total-shards 3 --shard-index 0 --exclude-tags=extension || EXIT_CODE=$? | 
|  | ;; | 
|  | test_3) | 
|  | echo 'dart test --total-shards 3 --shard-index 1 --exclude-tags=extension' | 
|  | dart test --total-shards 3 --shard-index 1 --exclude-tags=extension || EXIT_CODE=$? | 
|  | ;; | 
|  | test_4) | 
|  | echo 'dart test --total-shards 3 --shard-index 2 --exclude-tags=extension' | 
|  | dart test --total-shards 3 --shard-index 2 --exclude-tags=extension || EXIT_CODE=$? | 
|  | ;; | 
|  | test_5) | 
|  | echo 'dart test -j 1' | 
|  | dart test -j 1 || EXIT_CODE=$? | 
|  | ;; | 
|  | test_6) | 
|  | echo 'dart test --exclude-tags=release' | 
|  | dart test --exclude-tags=release || EXIT_CODE=$? | 
|  | ;; | 
|  | test_7) | 
|  | echo 'dart test test/build/ensure_build_test.dart' | 
|  | dart test test/build/ensure_build_test.dart || EXIT_CODE=$? | 
|  | ;; | 
|  | *) | 
|  | echo -e "\033[31mUnknown TASK '${TASK}' - TERMINATING JOB\033[0m" | 
|  | exit 64 | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | if [[ ${EXIT_CODE} -ne 0 ]]; then | 
|  | echo -e "\033[31mPKG: ${PKG}; TASK: ${TASK} - FAILED (${EXIT_CODE})\033[0m" | 
|  | FAILURES+=("${PKG}; TASK: ${TASK}") | 
|  | else | 
|  | echo -e "\033[32mPKG: ${PKG}; TASK: ${TASK} - SUCCEEDED\033[0m" | 
|  | SUCCESS_COUNT=$((SUCCESS_COUNT + 1)) | 
|  | fi | 
|  |  | 
|  | done | 
|  | fi | 
|  |  | 
|  | echo | 
|  | echo -e "\033[32mSUCCESS COUNT: ${SUCCESS_COUNT}\033[0m" | 
|  |  | 
|  | if [ ${#FAILURES[@]} -ne 0 ]; then | 
|  | echo -e "\033[31mFAILURES: ${#FAILURES[@]}\033[0m" | 
|  | for i in "${FAILURES[@]}"; do | 
|  | echo -e "\033[31m  $i\033[0m" | 
|  | done | 
|  | fi | 
|  |  | 
|  | popd >/dev/null || exit 70 | 
|  | echo | 
|  | done | 
|  |  | 
|  | if [ ${#FAILURES[@]} -ne 0 ]; then | 
|  | exit 1 | 
|  | fi |