You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.3 KiB
119 lines
3.3 KiB
#!/bin/bash |
|
# Created with package:mono_repo v6.5.5 |
|
|
|
# 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 'flutter analyze --fatal-infos .' |
|
flutter analyze --fatal-infos . || EXIT_CODE=$? |
|
;; |
|
analyze_1) |
|
echo 'dart analyze --fatal-infos .' |
|
dart analyze --fatal-infos . || EXIT_CODE=$? |
|
;; |
|
format) |
|
echo 'dart format --output=none --set-exit-if-changed --line-length 120 .' |
|
dart format --output=none --set-exit-if-changed --line-length 120 . || EXIT_CODE=$? |
|
;; |
|
test) |
|
echo 'dart test' |
|
dart test || 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
|
|
|