#!/usr/bin/env python3
import os
import sys

if sys.version_info[0] < 3 or sys.version_info[1] < 2:
    print("You need at least Python 3.2 to run FS-UAE Launcher")
    sys.exit(1)

if os.environ.get("FSGS_PYTHONPATH", ""):
    sys.path.insert(0, os.environ.get("FSGS_PYTHONPATH"))


def print_version():
    import launcher.version
    print(launcher.version.VERSION)


def frozen_qpa_platform_plugin_path():
    import fsboot
    os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = os.path.join(
        fsboot.executable_dir(), "platforms")


def frozen_python_libs():
    import fsboot
    libs_dirs = [fsboot.executable_dir()]
    libs_dir = os.path.abspath(
        os.path.join(fsboot.executable_dir(), "..", "..", "Python"))
    print(libs_dir, os.path.exists(libs_dir))
    if os.path.exists(libs_dir):
        libs_dirs.append(libs_dir)
    else:
        libs_dir = os.path.abspath(
            os.path.join(fsboot.executable_dir(), "..", "..", "..",
                         "..", "..", "Python"))
        print(libs_dir, os.path.exists(libs_dir))
        if os.path.exists(libs_dir):
            libs_dirs.append(libs_dir)
    for libs_dir in libs_dirs:
        for item in os.listdir(libs_dir):
            if item.endswith(".zip"):
                path = os.path.join(libs_dir, item)
                print("adding", path)
                sys.path.insert(0, path)


def frozen_requests_ca_cert():
    import fsboot
    data_dirs = [fsboot.executable_dir()]
    data_dir = os.path.abspath(
        os.path.join(fsboot.executable_dir(), "..", "..", "Data"))
    print(data_dir, os.path.exists(data_dir))
    if os.path.exists(data_dir):
        data_dirs.append(data_dir)
    else:
        data_dir = os.path.abspath(
            os.path.join(fsboot.executable_dir(), "..", "..", "..",
                         "..", "..", "Data"))
        print(data_dir, os.path.exists(data_dir))
        if os.path.exists(data_dir):
            data_dirs.append(data_dir)
    for data_dir in data_dirs:
        path = os.path.join(data_dir, "cacert.pem")
        if os.path.exists(path):
            print("[HTTP] Using {}".format(path))
            os.environ["REQUESTS_CA_BUNDLE"] = path
            break


def main():
    if getattr(sys, "frozen", False):
        frozen_qpa_platform_plugin_path()
        frozen_python_libs()
        frozen_requests_ca_cert()

    if "--version" in sys.argv:
        print_version()
        sys.exit(0)

    import launcher.apps
    launcher.apps.main()


main()

# Dummy imports for cx_Freeze
sys.exit(0)
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.appdirs
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.packaging.requirements
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.packaging.specifiers
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.packaging.version
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.pyparsing
# noinspection PyUnreachableCode,PyUnresolvedReferences,PyProtectedMember
import pkg_resources._vendor.six
