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

BIN_DIR = os.path.dirname(os.path.abspath(__file__))


def main(argv):
    keep = False
    folder = None
    while argv and argv[0] != "--":
        if argv[0] == "--chromium":
            keep = True
            argv = argv[1:]
        elif argv[0] == "--for" and len(argv) > 1:
            folder = argv[1]
            argv = argv[2:]
        else:
            break
    if argv and argv[0] == "--":
        argv = argv[1:]
    if not argv:
        print("usage: droiddeck-game-gpu [--chromium] [--for FOLDER] -- PROGRAM [ARGS...]", file=sys.stderr)
        return 2
    env = dict(os.environ)
    try:
        game_env = runpy.run_path(os.path.join(BIN_DIR, "droiddeck-game-env"))
        if folder and not keep:
            keep = game_env["chromium_app"](folder)
        env = game_env["game_gpu"](env, keep)
    except Exception as error:
        print("droiddeck-game-gpu: the game GPU setting was not applied (%s)" % error, file=sys.stderr)
    try:
        os.execvpe(argv[0], argv, env)
    except OSError as error:
        print("droiddeck-game-gpu: %s: %s" % (argv[0], error.strerror), file=sys.stderr)
        return 127


if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))
