77 lines
2 KiB
Bash
Executable file
77 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
cd "$(dirname "${0}")"
|
|
BASE_DIR="$(pwd)"
|
|
PACKAGES=(aria2 git unzip wget)
|
|
# Tensorflow states 3.4.0 as the minimum version.
|
|
# This is also the minimum version with venv support.
|
|
# 3.8.0 and up only includes tensorflow 2.0 and not 1.15
|
|
MIN_PYTHON_VERS="3.4.0"
|
|
MAX_PYTHON_VERS="3.7.9"
|
|
|
|
version_check () {
|
|
MAX_VERS=$(echo -e "$(python3 --version | cut -d' ' -f2)\n$MAX_PYTHON_VERS\n$MIN_PYTHON_VERS"\
|
|
| sort -V | tail -n1)
|
|
MIN_VERS=$(echo -e "$(python3 --version | cut -d' ' -f2)\n$MAX_PYTHON_VERS\n$MIN_PYTHON_VERS"\
|
|
| sort -V | head -n1)
|
|
if [ "$MIN_VERS" != "$MIN_PYTHON_VERS" ]; then
|
|
echo "Your installed python version, $(python3 --version), is too old."
|
|
echo "Please update to at least $MIN_PYTHON_VERS."
|
|
exit 1
|
|
elif [ "$MAX_VERS" != "$MAX_PYTHON_VERS" ]; then
|
|
echo "Your installed python version, $(python3 --version), is too new."
|
|
echo "Please install $MAX_PYTHON_VERS."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
pip_install () {
|
|
if [ ! -d "./venv" ]; then
|
|
# Some distros have venv built into python so this isn't always needed.
|
|
if is_command 'apt-get'; then
|
|
apt-get install python3-venv
|
|
fi
|
|
python3 -m venv ./venv
|
|
fi
|
|
source "${BASE_DIR}/venv/bin/activate"
|
|
pip install --upgrade pip setuptools
|
|
pip install -r "${BASE_DIR}/requirements.txt"
|
|
}
|
|
|
|
is_command() {
|
|
command -v "${@}" > /dev/null
|
|
}
|
|
|
|
system_package_install() {
|
|
SUDO=''
|
|
if (( $EUID != 0 )); then
|
|
SUDO='sudo'
|
|
fi
|
|
|
|
PACKAGES=(aria2 git unzip wget)
|
|
if is_command 'apt-get'; then
|
|
$SUDO apt-get install ${PACKAGES[@]}
|
|
elif is_command 'brew'; then
|
|
brew install ${PACKAGES[@]}
|
|
elif is_command 'yum'; then
|
|
$SUDO yum install ${PACKAGES[@]}
|
|
elif is_command 'dnf'; then
|
|
$SUDO dnf install ${PACKAGES[@]}
|
|
elif is_command 'pacman'; then
|
|
$SUDO pacman -S ${PACKAGES[@]}
|
|
elif is_command 'apk'; then
|
|
$SUDO apk --update add ${PACKAGES[@]}
|
|
else
|
|
echo "You do not seem to be using a supported package manager."
|
|
echo "Please make sure ${PACKAGES[@]} are installed then press [ENTER]"
|
|
read NOT_USED
|
|
fi
|
|
}
|
|
|
|
install_aid () {
|
|
version_check
|
|
pip_install
|
|
system_package_install
|
|
}
|
|
|
|
install_aid
|