| #!/bin/bash | 
 | # Created with package:mono_repo v3.4.7 | 
 |  | 
 | # Support built in commands on windows out of the box. | 
 | function pub() { | 
 |   if [[ $TRAVIS_OS_NAME == "windows" ]]; then | 
 |     command pub.bat "$@" | 
 |   else | 
 |     command pub "$@" | 
 |   fi | 
 | } | 
 | function dartfmt() { | 
 |   if [[ $TRAVIS_OS_NAME == "windows" ]]; then | 
 |     command dartfmt.bat "$@" | 
 |   else | 
 |     command dartfmt "$@" | 
 |   fi | 
 | } | 
 | function dartanalyzer() { | 
 |   if [[ $TRAVIS_OS_NAME == "windows" ]]; then | 
 |     command dartanalyzer.bat "$@" | 
 |   else | 
 |     command dartanalyzer "$@" | 
 |   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 | 
 |  | 
 |   pub upgrade --no-precompile || EXIT_CODE=$? | 
 |  | 
 |   if [[ ${EXIT_CODE} -ne 0 ]]; then | 
 |     echo -e "\033[31mPKG: ${PKG}; 'pub upgrade' - FAILED  (${EXIT_CODE})\033[0m" | 
 |     FAILURES+=("${PKG}; 'pub upgrade'") | 
 |   else | 
 |     for TASK in "$@"; do | 
 |       EXIT_CODE=0 | 
 |       echo | 
 |       echo -e "\033[1mPKG: ${PKG}; TASK: ${TASK}\033[22m" | 
 |       case ${TASK} in | 
 |       command) | 
 |         echo 'Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &' | 
 |         Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & || EXIT_CODE=$? | 
 |         ;; | 
 |       dartanalyzer_0) | 
 |         echo 'dartanalyzer --fatal-infos --fatal-warnings .' | 
 |         dartanalyzer --fatal-infos --fatal-warnings . || EXIT_CODE=$? | 
 |         ;; | 
 |       dartanalyzer_1) | 
 |         echo 'dartanalyzer --fatal-warnings .' | 
 |         dartanalyzer --fatal-warnings . || EXIT_CODE=$? | 
 |         ;; | 
 |       dartfmt) | 
 |         echo 'dartfmt -n --set-exit-if-changed .' | 
 |         dartfmt -n --set-exit-if-changed . || EXIT_CODE=$? | 
 |         ;; | 
 |       test_0) | 
 |         echo 'pub run test test/build/ensure_version_test.dart' | 
 |         pub run test test/build/ensure_version_test.dart || EXIT_CODE=$? | 
 |         ;; | 
 |       test_1) | 
 |         echo 'pub run test' | 
 |         pub run test || EXIT_CODE=$? | 
 |         ;; | 
 |       test_2) | 
 |         echo 'pub run test test/build/ensure_build_test.dart' | 
 |         pub run test test/build/ensure_build_test.dart || EXIT_CODE=$? | 
 |         ;; | 
 |       test_3) | 
 |         echo 'pub run test -j 1' | 
 |         pub run test -j 1 || 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 |