2017-05-17 16:46:54 +01:00
|
|
|
#!/usr/bin/env python3
|
2015-12-26 20:52:39 +00:00
|
|
|
|
|
|
|
|
|
2017-05-31 19:41:56 +01:00
|
|
|
import distro
|
2015-12-26 20:52:39 +00:00
|
|
|
import subprocess
|
|
|
|
|
import tools
|
|
|
|
|
|
|
|
|
|
|
2017-05-31 19:41:56 +01:00
|
|
|
dist_id = distro.id()
|
2017-05-17 16:46:54 +01:00
|
|
|
pip_deps, pip3_deps, dist_deps = set(), set(), set()
|
|
|
|
|
for dependency in tools.dependencies(dist_id):
|
|
|
|
|
if "/" in dependency:
|
|
|
|
|
pip_version, pip_dependency = dependency.split("/")
|
|
|
|
|
(pip_deps if pip_version == "pip" else pip3_deps).add(pip_dependency)
|
|
|
|
|
else:
|
|
|
|
|
dist_deps.add(dependency)
|
|
|
|
|
cmd_for_dist = {"ubuntu": ["apt-get", "-y", "install"],
|
|
|
|
|
"debian": ["apt-get", "-y", "install"],
|
|
|
|
|
"fedora": ["dnf", "-y", "install"],
|
2017-05-31 19:41:56 +01:00
|
|
|
"arch": ["pacman", "-S", "--noconfirm", "--needed"],
|
|
|
|
|
"opensuse": ["zypper", "-n", "install"]}
|
2017-05-17 16:46:54 +01:00
|
|
|
if pip_deps:
|
|
|
|
|
dist_deps.add("python2-pip" if dist_id == "arch" else "python-pip")
|
|
|
|
|
if pip3_deps:
|
|
|
|
|
dist_deps.add("python-pip" if dist_id == "arch" else "python3-pip")
|
|
|
|
|
if dist_deps:
|
|
|
|
|
subprocess.check_call(["sudo"] + cmd_for_dist[dist_id] + list(dist_deps))
|
|
|
|
|
if pip_deps:
|
|
|
|
|
subprocess.check_call(["sudo", "pip", "install"] + list(pip_deps))
|
|
|
|
|
if pip3_deps:
|
|
|
|
|
subprocess.check_call(["sudo", "pip3", "install"] + list(pip3_deps))
|