mirror of
https://github.com/YunoHost-Apps/seafile_ynh.git
synced 2024-09-03 20:26:01 +02:00
93 lines
2.7 KiB
Bash
93 lines
2.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
########
|
||
|
### This script is a wrapper for setup-seafile-mysql.py
|
||
|
########
|
||
|
|
||
|
set -e
|
||
|
|
||
|
SCRIPT=$(readlink -f "$0")
|
||
|
INSTALLPATH=$(dirname "${SCRIPT}")
|
||
|
|
||
|
cd "$INSTALLPATH"
|
||
|
|
||
|
python_script=setup-seafile-mysql.py
|
||
|
|
||
|
function err_and_quit () {
|
||
|
printf "\n\n\033[33mError occured during setup. \nPlease fix possible problems and run the script again.\033[m\n\n"
|
||
|
exit 1;
|
||
|
}
|
||
|
|
||
|
function check_python_executable() {
|
||
|
if [[ "$PYTHON" != "" && -x $PYTHON ]]; then
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
if which python2.7 2>/dev/null 1>&2; then
|
||
|
PYTHON=python2.7
|
||
|
elif which python27 2>/dev/null 1>&2; then
|
||
|
PYTHON=python27
|
||
|
elif which python2.6 2>/dev/null 1>&2; then
|
||
|
PYTHON=python2.6
|
||
|
elif which python26 2>/dev/null 1>&2; then
|
||
|
PYTHON=python26
|
||
|
else
|
||
|
echo
|
||
|
echo "Can't find a python executable of version 2.6 or above in PATH"
|
||
|
echo "Install python 2.6+ before continue."
|
||
|
echo "Or if you installed it in a non-standard PATH, set the PYTHON enviroment varirable to it"
|
||
|
echo
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
function check_python_module () {
|
||
|
module=$1
|
||
|
name=$2
|
||
|
hint=$3
|
||
|
printf " Checking python module: ${name} ... "
|
||
|
if ! $PYTHON -c "import ${module}" 2>/dev/null 1>&2; then
|
||
|
echo
|
||
|
printf "\033[33m ${name} \033[m is not installed, Please install it first.\n"
|
||
|
if [[ "${hint}" != "" ]]; then
|
||
|
printf "${hint}"
|
||
|
echo
|
||
|
fi
|
||
|
err_and_quit;
|
||
|
fi
|
||
|
echo -e "Done."
|
||
|
}
|
||
|
|
||
|
function check_python () {
|
||
|
echo "Checking python on this machine ..."
|
||
|
check_python_executable
|
||
|
if ! which $PYTHON 2>/dev/null 1>&2; then
|
||
|
echo "No $PYTHON found on this machine. Please install it first."
|
||
|
err_and_quit;
|
||
|
else
|
||
|
if ($Python --version 2>&1 | grep "3\\.[0-9].\\.[0-9]") 2>/dev/null 1>&2 ; then
|
||
|
printf "\033[33m Python version 3.x \033[m detected\n"
|
||
|
echo "Python 3.x is not supported. Please use python 2.x. Now quit."
|
||
|
err_and_quit;
|
||
|
fi
|
||
|
|
||
|
if [[ $PYTHON == "python2.6" ]]; then
|
||
|
py26="2.6"
|
||
|
fi
|
||
|
hint="\nOn Debian/Ubntu: apt-get install python-setuptools\nOn CentOS/RHEL: yum install python${py26}-distribute"
|
||
|
check_python_module pkg_resources setuptools "${hint}"
|
||
|
|
||
|
hint="\nOn Debian/Ubntu: apt-get install python-imaging\nOn CentOS/RHEL: yum install python${py26}-imaging"
|
||
|
check_python_module PIL python-imaging "${hint}"
|
||
|
|
||
|
hint='\nOn Debian/Ubuntu:\n\nsudo apt-get install python-mysqldb\n\nOn CentOS/RHEL:\n\nsudo yum install MYSQL-python'
|
||
|
check_python_module MySQLdb python-mysqldb "${hint}"
|
||
|
fi
|
||
|
echo
|
||
|
}
|
||
|
|
||
|
check_python;
|
||
|
|
||
|
export PYTHON=$PYTHON
|
||
|
|
||
|
exec $PYTHON "$python_script"
|