generate_pigeon.sh 988 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/wechat_api.dart
dart run pigeon --input pigeon/platform_api.dart
dart run pigeon --input pigeon/health_kit_raw_data_api.dart
dart run pigeon --input pigeon/wechat_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."