generate_pigeon.sh
834 Bytes
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
dart run pigeon --input pigeon/health_kit_api.dart
dart run pigeon --input pigeon/wear_engine_api.dart
dart run pigeon --input pigeon/alipay_api.dart
dart run pigeon --input pigeon/platform_api.dart
# Pigeon emits PigeonError in every swiftOut file; Runner needs a single definition.
python3 <<'PY'
import re
from pathlib import Path
pattern = re.compile(
r"\n/// Error class for passing custom error details to Dart side\.\n"
r"final class PigeonError: Error \{.*?\n\}\n",
re.DOTALL,
)
for path in Path("ios/Runner/Pigeon").glob("*Api.swift"):
text = path.read_text(encoding="utf-8")
new_text, count = pattern.subn("\n", text, count=1)
if count:
path.write_text(new_text, encoding="utf-8")
PY
echo "Pigeon code generation finished."