#!/usr/bin/python3

import argcomplete
import os
import errno
import subprocess
import sys


def main(args):
    sharedirs = ["./", "/opt/homebrew/share/ramalama", "/usr/local/share/ramalama", "/usr/share/ramalama"]
    syspath = next((d for d in sharedirs if os.path.exists(d+"/ramalama/cli.py")), None)
    if syspath:
        sys.path.insert(0, syspath)
    import ramalama

    parser, args = ramalama.init_cli()
    argcomplete.autocomplete(parser)

    if args.version:
        return ramalama.print_version(args)

    if ramalama.run_container(args):
        return

    # Process CLI
    try:
        args.func(args)
    except ramalama.HelpException:
        parser.print_help()
    except AttributeError:
        parser.print_usage()
        print("ramalama: requires a subcommand")
    except IndexError as e:
        ramalama.perror("Error: " + str(e).strip("'"))
        sys.exit(errno.EINVAL)
    except KeyError as e:
        ramalama.perror("Error: " + str(e).strip("'"))
        sys.exit(1)
    except NotImplementedError as e:
        ramalama.perror("Error: " + str(e).strip("'"))
        sys.exit(errno.ENOTSUP)
    except subprocess.CalledProcessError as e:
        sys.exit(e.returncode)
    except KeyboardInterrupt:
        sys.exit(0)


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