#!/usr/bin/env python3
"""CLI that writes an explicit app version into Android/iOS/Expo files.
Used by the create-new-release GitHub Action."""
import os
import sys

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from versioning import set_android_version, update_ios_version, set_eas_runtime_version


def main(argv):
    if len(argv) != 2:
        print('Usage: python3 scripts/set_app_version.py <vX.Y.Z>', file=sys.stderr)
        return 1
    raw = argv[1]
    if not raw.startswith('v'):
        print(f"Error: version must start with 'v' (got '{raw}')", file=sys.stderr)
        return 1
    version = raw[1:]
    parts = version.split('.')
    if len(parts) != 3 or not all(p.isdigit() for p in parts):
        print(f"Error: version must be in format vX.Y.Z (got '{raw}')", file=sys.stderr)
        return 1
    print(f'Setting app version to {version}')
    set_android_version(version)
    update_ios_version(version)
    set_eas_runtime_version(version)
    print('Done.')
    return 0


if __name__ == '__main__':
    sys.exit(main(sys.argv))
