from os.path import join, dirname, abspath, normpath
from os import environ
from sys import argv, version
from platform import release


bundlepath = argv[0]

bundle_contents = join(bundlepath, "Contents")
bundle_res = join(bundle_contents, "Resources")

bundle_lib = join(bundle_res, "lib")
bundle_bin = join(bundle_res, "bin")
bundle_data = join(bundle_res, "share")
bundle_etc = join(bundle_res, "etc")

environ["XDG_DATA_DIRS"] = bundle_data
environ["DYLD_LIBRARY_PATH"] = bundle_lib
environ["LD_LIBRARY_PATH"] = bundle_lib
environ["GTK_DATA_PREFIX"] = bundle_res
environ["GTK_EXE_PREFIX"] = bundle_res
environ["GTK_PATH"] = bundle_res

environ["PANGO_RC_FILE"] = join(bundle_etc, "pango", "pangorc")
environ["PANGO_SYSCONFDIR"] = bundle_etc
environ["PANGO_LIBDIR"] = bundle_lib
environ["GIO_MODULE_DIR"] = join(bundle_lib, "gio", "modules")
environ["GDK_PIXBUF_MODULE_FILE"] = join(
    bundle_lib, "gdk-pixbuf-2.0", "2.10.0", "loaders.cache"
)
environ["GI_TYPELIB_PATH"] = join(bundle_lib, "girepository-1.0")
environ["GVBINDIR"] = join(bundle_lib, "graphviz")
environ["ENCHANT_MODULE_PATH"] = join(bundle_lib, "enchant")

# Set $PYTHON to point inside the bundle: 4 characters to get '3.13'
PYVER = "python" + version[:4]

environ["GRAMPSDIR"] = join(bundle_lib, PYVER, "site-packages", "gramps")
environ["GRAMPSI18N"] = join(bundle_data, "locale")
environ["GRAMPS_RESOURCES"] = bundle_data
environ["USERPROFILE"] = environ["HOME"]
environ["APPDATA"] = join(environ["HOME"], "Library", "Application Support")
environ["PATH"] = join(bundle_contents, "MacOS") + ":" + environ["PATH"]

if __name__ == "__main__":
    __file__ = "gramps_launcher.py"
import gramps.grampsapp as app

app.main()
