forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmobile_build_wrapper_test.sh
More file actions
executable file
·52 lines (45 loc) · 1.42 KB
/
Copy pathmobile_build_wrapper_test.sh
File metadata and controls
executable file
·52 lines (45 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
fixture_dir="$(mktemp -d "${TMPDIR:-/tmp}/omi-mobile-wrapper.XXXXXX")"
trap 'rm -rf "$fixture_dir"' EXIT
mkdir -p "$fixture_dir/scripts" "$fixture_dir/ios"
cp "$ROOT_DIR/setup.sh" "$fixture_dir/setup.sh"
cp "$ROOT_DIR/scripts/validate_mobile_build_config.sh" "$fixture_dir/scripts/validate_mobile_build_config.sh"
chmod +x "$fixture_dir/scripts/validate_mobile_build_config.sh"
log_file="$fixture_dir/flutter.log"
(
cd "$fixture_dir"
source ./setup.sh >/dev/null
flutter() {
{
printf 'flutter'
printf ' %s' "$@"
printf '\n'
} >>"$log_file"
}
pod() {
{
printf 'pod'
printf ' %s' "$@"
printf '\n'
} >>"$log_file"
}
dart() {
{
printf 'dart'
printf ' %s' "$@"
printf '\n'
} >>"$log_file"
}
check_ios_prerequisites() { :; }
select_ios_device() { printf 'TEST-DEVICE\n'; }
run_build_ios prod
grep -F 'flutter run --flavor prod -d TEST-DEVICE --dart-define=OMI_APP_PROFILE=mobile_beta' "$log_file" >/dev/null
[[ "$(grep -F 'OMI_APP_PROFILE=mobile_beta' "$log_file" | tr ' ' '\n' | grep -c '^--dart-define=')" == 1 ]]
if run_build_ios prod --dart-define=OMI_APP_PROFILE=production; then
echo 'FAIL: wrapper accepted a conflicting profile define' >&2
exit 1
fi
)
echo 'mobile build wrapper injects one required profile and rejects conflicts'