Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 1 | #!/bin/bash |
Kevin Moore | 3df8669 | 2022-04-06 14:49:43 -0700 | [diff] [blame] | 2 | # Created with package:mono_repo v6.2.0 |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 3 | |
| 4 | # Support built in commands on windows out of the box. |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 5 | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") |
| 6 | # then "flutter" is called instead of "pub". |
| 7 | # This assumes that the Flutter SDK has been installed in a previous step. |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 8 | function pub() { |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 9 | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 10 | command flutter pub "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 11 | else |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 12 | command dart pub "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 13 | fi |
| 14 | } |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 15 | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") |
| 16 | # then "flutter" is called instead of "pub". |
| 17 | # This assumes that the Flutter SDK has been installed in a previous step. |
| 18 | function format() { |
| 19 | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then |
| 20 | command flutter format "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 21 | else |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 22 | command dart format "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 23 | fi |
| 24 | } |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 25 | # When it is a flutter repo (check the pubspec.yaml for "sdk: flutter") |
| 26 | # then "flutter" is called instead of "pub". |
| 27 | # This assumes that the Flutter SDK has been installed in a previous step. |
| 28 | function analyze() { |
| 29 | if grep -Fq "sdk: flutter" "${PWD}/pubspec.yaml"; then |
| 30 | command flutter analyze "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 31 | else |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 32 | command dart analyze "$@" |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 33 | fi |
| 34 | } |
| 35 | |
| 36 | if [[ -z ${PKGS} ]]; then |
| 37 | echo -e '\033[31mPKGS environment variable must be set! - TERMINATING JOB\033[0m' |
| 38 | exit 64 |
| 39 | fi |
| 40 | |
| 41 | if [[ "$#" == "0" ]]; then |
| 42 | echo -e '\033[31mAt least one task argument must be provided! - TERMINATING JOB\033[0m' |
| 43 | exit 64 |
| 44 | fi |
| 45 | |
| 46 | SUCCESS_COUNT=0 |
| 47 | declare -a FAILURES |
| 48 | |
| 49 | for PKG in ${PKGS}; do |
| 50 | echo -e "\033[1mPKG: ${PKG}\033[22m" |
| 51 | EXIT_CODE=0 |
| 52 | pushd "${PKG}" >/dev/null || EXIT_CODE=$? |
| 53 | |
| 54 | if [[ ${EXIT_CODE} -ne 0 ]]; then |
| 55 | echo -e "\033[31mPKG: '${PKG}' does not exist - TERMINATING JOB\033[0m" |
| 56 | exit 64 |
| 57 | fi |
| 58 | |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 59 | dart pub upgrade || EXIT_CODE=$? |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 60 | |
| 61 | if [[ ${EXIT_CODE} -ne 0 ]]; then |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 62 | echo -e "\033[31mPKG: ${PKG}; 'dart pub upgrade' - FAILED (${EXIT_CODE})\033[0m" |
| 63 | FAILURES+=("${PKG}; 'dart pub upgrade'") |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 64 | else |
| 65 | for TASK in "$@"; do |
| 66 | EXIT_CODE=0 |
| 67 | echo |
| 68 | echo -e "\033[1mPKG: ${PKG}; TASK: ${TASK}\033[22m" |
| 69 | case ${TASK} in |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 70 | analyze_0) |
Kevin Moore | 8571b58 | 2021-07-26 10:13:55 -0700 | [diff] [blame] | 71 | echo 'dart analyze --fatal-infos' |
| 72 | dart analyze --fatal-infos || EXIT_CODE=$? |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 73 | ;; |
| 74 | analyze_1) |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 75 | echo 'dart analyze lib' |
| 76 | dart analyze lib || EXIT_CODE=$? |
| 77 | ;; |
Kevin Moore | 8304474 | 2021-07-26 12:16:13 -0700 | [diff] [blame] | 78 | analyze_2) |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 79 | echo 'dart analyze test' |
| 80 | dart analyze test || EXIT_CODE=$? |
| 81 | ;; |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 82 | command_0) |
| 83 | echo './../tool/setup.sh' |
| 84 | ./../tool/setup.sh || EXIT_CODE=$? |
| 85 | ;; |
| 86 | command_1) |
| 87 | echo './compile_protos.sh' |
| 88 | ./compile_protos.sh || EXIT_CODE=$? |
| 89 | ;; |
| 90 | command_2) |
| 91 | echo 'make protos' |
| 92 | make protos || EXIT_CODE=$? |
| 93 | ;; |
Michael Thomsen | 47812f8 | 2021-06-18 17:51:59 +0200 | [diff] [blame] | 94 | format) |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 95 | echo 'dart format --output=none --set-exit-if-changed .' |
| 96 | dart format --output=none --set-exit-if-changed . || EXIT_CODE=$? |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 97 | ;; |
| 98 | test) |
dependabot[bot] | ea28b9c | 2021-06-08 16:32:11 -0700 | [diff] [blame] | 99 | echo 'dart test' |
| 100 | dart test || EXIT_CODE=$? |
Sigurd Meldgaard | d7bff4e | 2021-02-04 15:48:58 +0100 | [diff] [blame] | 101 | ;; |
| 102 | *) |
| 103 | echo -e "\033[31mUnknown TASK '${TASK}' - TERMINATING JOB\033[0m" |
| 104 | exit 64 |
| 105 | ;; |
| 106 | esac |
| 107 | |
| 108 | if [[ ${EXIT_CODE} -ne 0 ]]; then |
| 109 | echo -e "\033[31mPKG: ${PKG}; TASK: ${TASK} - FAILED (${EXIT_CODE})\033[0m" |
| 110 | FAILURES+=("${PKG}; TASK: ${TASK}") |
| 111 | else |
| 112 | echo -e "\033[32mPKG: ${PKG}; TASK: ${TASK} - SUCCEEDED\033[0m" |
| 113 | SUCCESS_COUNT=$((SUCCESS_COUNT + 1)) |
| 114 | fi |
| 115 | |
| 116 | done |
| 117 | fi |
| 118 | |
| 119 | echo |
| 120 | echo -e "\033[32mSUCCESS COUNT: ${SUCCESS_COUNT}\033[0m" |
| 121 | |
| 122 | if [ ${#FAILURES[@]} -ne 0 ]; then |
| 123 | echo -e "\033[31mFAILURES: ${#FAILURES[@]}\033[0m" |
| 124 | for i in "${FAILURES[@]}"; do |
| 125 | echo -e "\033[31m $i\033[0m" |
| 126 | done |
| 127 | fi |
| 128 | |
| 129 | popd >/dev/null || exit 70 |
| 130 | echo |
| 131 | done |
| 132 | |
| 133 | if [ ${#FAILURES[@]} -ne 0 ]; then |
| 134 | exit 1 |
| 135 | fi |