|
| 1 | +#!/usr/bin/env bash |
| 2 | +set -euo pipefail |
| 3 | + |
| 4 | +repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" |
| 5 | +work_dir="$(mktemp -d)" |
| 6 | +trap 'rm -rf "$work_dir"' EXIT |
| 7 | + |
| 8 | +copy_package() { |
| 9 | + local package_path="$1" |
| 10 | + local package_name="$2" |
| 11 | + |
| 12 | + cp -R "$repo_root/$package_path" "$work_dir/$package_name" |
| 13 | + rm -rf "$work_dir/$package_name/.dart_tool" |
| 14 | + rm -f "$work_dir/$package_name/pubspec_overrides.yaml" |
| 15 | + rm -f "$work_dir/$package_name/pubspec.lock" |
| 16 | +} |
| 17 | + |
| 18 | +resolved_package_version() { |
| 19 | + local package_name="$1" |
| 20 | + local deps_output |
| 21 | + |
| 22 | + deps_output="$(dart pub deps --style=list)" |
| 23 | + awk -v package_name="$package_name" '$2 == package_name {print $3; exit}' <<<"$deps_output" |
| 24 | +} |
| 25 | + |
| 26 | +verify_package() { |
| 27 | + local package_dir="$1" |
| 28 | + local package_name="$2" |
| 29 | + |
| 30 | + echo "Verifying $package_name with downgraded dependencies" |
| 31 | + ( |
| 32 | + cd "$package_dir" |
| 33 | + dart pub downgrade |
| 34 | + |
| 35 | + local analyzer_version |
| 36 | + analyzer_version="$(resolved_package_version analyzer)" |
| 37 | + echo "$package_name resolved analyzer $analyzer_version" |
| 38 | + |
| 39 | + dart analyze --fatal-warnings |
| 40 | + |
| 41 | + if [ -d test ]; then |
| 42 | + dart test |
| 43 | + fi |
| 44 | + ) |
| 45 | +} |
| 46 | + |
| 47 | +copy_package "codegen/gql_code_builder" "gql_code_builder" |
| 48 | +copy_package "codegen/gql_build" "gql_build" |
| 49 | + |
| 50 | +perl -0pi -e 's/ gql_code_builder: \^[^\n]+/ gql_code_builder:\n path: ..\/gql_code_builder/' \ |
| 51 | + "$work_dir/gql_build/pubspec.yaml" |
| 52 | +perl -0pi -e 's/name: gql_build\n/name: gql_build\npublish_to: none\n/' \ |
| 53 | + "$work_dir/gql_build/pubspec.yaml" |
| 54 | + |
| 55 | +verify_package "$work_dir/gql_code_builder" "gql_code_builder" |
| 56 | +verify_package "$work_dir/gql_build" "gql_build" |
0 commit comments