Not depending on python-distro.
- Python-distro is new and isn't packaged in many distributions. - Can just get the distribution ID directly.
This commit is contained in:
parent
3f7fdfe443
commit
c162d2b886
3 changed files with 12 additions and 13 deletions
|
|
@ -10,29 +10,22 @@ set -e
|
||||||
DIST_ID=$(cat /etc/os-release | grep "^ID=" | cut -d "=" -f 2)
|
DIST_ID=$(cat /etc/os-release | grep "^ID=" | cut -d "=" -f 2)
|
||||||
if [ $DIST_ID == "fedora" ]; then
|
if [ $DIST_ID == "fedora" ]; then
|
||||||
INSTALL_CMD="dnf -y install"
|
INSTALL_CMD="dnf -y install"
|
||||||
DEPS="python3-distro python3-inotify python3-pygments python3-docopt python3-pillow"
|
DEPS="python3-inotify python3-pygments python3-docopt python3-pillow"
|
||||||
elif [ $DIST_ID == "arch" ]; then
|
elif [ $DIST_ID == "arch" ]; then
|
||||||
INSTALL_CMD="pacman -S --noconfirm --needed"
|
INSTALL_CMD="pacman -S --noconfirm --needed"
|
||||||
DEPS="python-pyinotify python-pygments python-docopt python-pillow"
|
DEPS="python-pyinotify python-pygments python-docopt python-pillow"
|
||||||
sudo pacman -S --noconfirm python-pip
|
|
||||||
sudo pip3 install distro
|
|
||||||
elif [ $DIST_ID == "opensuse" ]; then
|
elif [ $DIST_ID == "opensuse" ]; then
|
||||||
INSTALL_CMD="zypper -n install"
|
INSTALL_CMD="zypper -n install"
|
||||||
DEPS="python3-pyinotify python3-Pygments python3-docopt python3-Pillow"
|
DEPS="python3-pyinotify python3-Pygments python3-docopt python3-Pillow"
|
||||||
sudo pip3 install distro
|
|
||||||
elif [ $DIST_ID == "debian" ]; then
|
elif [ $DIST_ID == "debian" ]; then
|
||||||
INSTALL_CMD="apt --yes install"
|
INSTALL_CMD="apt --yes install"
|
||||||
DEPS="python3-pyinotify python3-pygments python3-docopt python3-pillow"
|
DEPS="python3-pyinotify python3-pygments python3-docopt python3-pillow"
|
||||||
sudo apt --yes install python3-pip
|
|
||||||
sudo pip3 install distro
|
|
||||||
elif [ $DIST_ID == "gentoo" ]; then
|
elif [ $DIST_ID == "gentoo" ]; then
|
||||||
INSTALL_CMD="emerge --noreplace"
|
INSTALL_CMD="emerge --noreplace"
|
||||||
DEPS="pyinotify pygments docopt pillow"
|
DEPS="pyinotify pygments docopt pillow"
|
||||||
emerge --noreplace dev-python/pip
|
|
||||||
sudo pip3 install --user distro
|
|
||||||
else
|
else
|
||||||
INSTALL_CMD="apt --yes install"
|
INSTALL_CMD="apt --yes install"
|
||||||
DEPS="python3-distro python3-pyinotify python3-pygments python3-docopt python3-pillow"
|
DEPS="python3-pyinotify python3-pygments python3-docopt python3-pillow"
|
||||||
fi
|
fi
|
||||||
echo "Installing the dependencies of the vigil script..."
|
echo "Installing the dependencies of the vigil script..."
|
||||||
sudo $INSTALL_CMD $DEPS util-linux
|
sudo $INSTALL_CMD $DEPS util-linux
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,11 @@
|
||||||
# Licensed under the Artistic License 2.0.
|
# Licensed under the Artistic License 2.0.
|
||||||
|
|
||||||
|
|
||||||
import distro
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import tools
|
import tools
|
||||||
|
|
||||||
|
|
||||||
dist_id = distro.id()
|
dist_id = tools.get_distro_id()
|
||||||
pip_deps, pip3_deps, dist_deps = set(), set(), set()
|
pip_deps, pip3_deps, dist_deps = set(), set(), set()
|
||||||
for dependency in tools.dependencies(dist_id):
|
for dependency in tools.dependencies(dist_id):
|
||||||
if "/" in dependency:
|
if "/" in dependency:
|
||||||
|
|
|
||||||
11
tools.py
11
tools.py
|
|
@ -23,7 +23,6 @@ import tempfile
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import distro
|
|
||||||
import PIL.Image
|
import PIL.Image
|
||||||
import pygments
|
import pygments
|
||||||
import pygments.lexers
|
import pygments.lexers
|
||||||
|
|
@ -878,9 +877,17 @@ def is_tool_in_distribution(tool, distribution):
|
||||||
return tool
|
return tool
|
||||||
|
|
||||||
|
|
||||||
|
def get_distro_id():
|
||||||
|
with open("/etc/os-release") as os_release_file:
|
||||||
|
for line in os_release_file:
|
||||||
|
if line.startswith("ID="):
|
||||||
|
return line[len("ID="):].strip()
|
||||||
|
raise AssertionError
|
||||||
|
|
||||||
|
|
||||||
@functools.lru_cache(maxsize=1)
|
@functools.lru_cache(maxsize=1)
|
||||||
def _tools_for_extension():
|
def _tools_for_extension():
|
||||||
distribution = distro.id()
|
distribution = get_distro_id()
|
||||||
result = {}
|
result = {}
|
||||||
for extensions, tools in TOOLS_FOR_EXTENSIONS:
|
for extensions, tools in TOOLS_FOR_EXTENSIONS:
|
||||||
for extension in extensions:
|
for extension in extensions:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue