#!/usr/bin/env python3.9


import subprocess
import eris.tools


pip_deps, go_deps, luarocks_deps, dist_deps, git_deps = set(), set(), set(), \
    set(), set()
dep_types = {"pip": pip_deps, "go": go_deps, "luarocks": luarocks_deps,
             "git": git_deps}
for dependency in eris.tools.dependencies():
    if "/" in dependency:
        dep_type, dep = dependency.split("/", maxsplit=1)
        dep_types[dep_type].add(dep)
    else:
        dist_deps.add(dependency)
if dist_deps:
    subprocess.run(["sudo", "apt-get", "-y", "install"] + list(dist_deps),
                   check=True)
if pip_deps:
    subprocess.run(["python" + eris.tools.PYTHON_VERSION, "-m", "pip",
                    "install", "--force-reinstall"] + list(pip_deps),
                   check=True)
if go_deps:
    subprocess.run(["sudo", "apt-get", "-y", "install", "golang-go"],
                   check=True)
    subprocess.run(["go", "get"] + list(go_deps), check=True)

if luarocks_deps:
    subprocess.run(["sudo", "apt-get", "-y", "install", "luarocks",
                    "liblua5.3-dev"], check=True)
    subprocess.run(["sudo", "luarocks", "install"] + list(luarocks_deps),
                   check=True)
