diff options
Diffstat (limited to 'python.d/python-modules-installer.sh')
-rw-r--r-- | python.d/python-modules-installer.sh | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/python.d/python-modules-installer.sh b/python.d/python-modules-installer.sh deleted file mode 100644 index cda3c666..00000000 --- a/python.d/python-modules-installer.sh +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env bash - -umask 022 - -dir="/usr/local/libexec/netdata/python.d" -target="${dir}/python_modules" -pv="$(python -V 2>&1)" - -# parse parameters -while [ ! -z "${1}" ] -do - case "${1}" in - -p|--python) - pv="Python ${2}" - shift 2 - ;; - - -d|--dir) - dir="${2}" - target="${dir}/python_modules" - echo >&2 "Will install python modules in: '${target}'" - shift 2 - ;; - - -s|--system) - target= - echo >&2 "Will install python modules system-wide" - shift - ;; - - -h|--help) - echo "${0} [--dir netdata-python.d-path] [--system]" - echo "Please make sure you have installed packages: python-pip (or python3-pip) python-dev libyaml-dev libmysqlclient-dev" - exit 0 - ;; - - *) - echo >&2 "Cannot understand parameter: ${1}" - exit 1 - ;; - esac -done - - -if [ ! -z "${target}" -a ! -d "${target}" ] -then - echo >&2 "Cannot find directory: '${target}'" - exit 1 -fi - -if [[ "${pv}" =~ ^Python\ 2.* ]] -then - pv=2 - pip="$(which pip2 2>/dev/null)" -elif [[ "${pv}" =~ ^Python\ 3.* ]] -then - pv=3 - pip="$(which pip3 2>/dev/null)" -else - echo >&2 "Cannot detect python version. Is python installed?" - exit 1 -fi - -[ -z "${pip}" ] && pip="$(which pip 2>/dev/null)" -if [ -z "${pip}" ] -then - echo >&2 "pip command is required to install python v${pv} modules." - [ "${pv}" = "2" ] && echo >&2 "Please install python-pip." - [ "${pv}" = "3" ] && echo >&2 "Please install python3-pip." - exit 1 -fi - -echo >&2 "Working for python version ${pv} (pip command: '${pip}')" -echo >&2 "Installing netdata python modules in: '${target}'" - -run() { - printf "Running command:\n# " - printf "%q " "${@}" - printf "\n" - "${@}" -} - -# try to install all the python modules given as parameters -# until the first that succeeds -failed="" -installed="" -errors=0 -pip_install() { - local ret x msg="${1}" - shift - - echo >&2 - echo >&2 - echo >&2 "Installing one of: ${*}" - - for x in "${@}" - do - echo >&2 - echo >&2 "attempting to install: ${x}" - if [ ! -z "${target}" ] - then - run "${pip}" install --target "${target}" "${x}" - ret=$? - else - run "${pip}" install "${x}" - ret=$? - fi - [ ${ret} -eq 0 ] && break - echo >&2 "failed to install: ${x}. ${msg}" - done - - if [ ${ret} -ne 0 ] - then - echo >&2 - echo >&2 - echo >&2 "FAILED: could not install any of: ${*}. ${msg}" - echo >&2 - echo >&2 - errors=$(( errors + 1 )) - failed="${failed}|${*}" - else - echo >&2 - echo >&2 - echo >&2 "SUCCESS: we have: ${x}" - echo >&2 - echo >&2 - installed="${installed} ${x}" - fi - return ${ret} -} - -if [ "${pv}" = "2" ] -then - pip_install "is libyaml-dev and python-dev installed?" pyyaml - pip_install "is libmysqlclient-dev and python-dev installed?" mysqlclient mysql-python pymysql -else - pip_install "is libyaml-dev and python-dev installed?" pyyaml - pip_install "is libmysqlclient-dev and python-dev installed?" mysql-python mysqlclient pymysql -fi - -echo >&2 -echo >&2 -if [ ${errors} -ne 0 ] -then - echo >&2 "Failed to install ${errors} modules: ${failed}" - if [ ! -z "${target}" ] - then - echo >&2 - echo >&2 "If you are getting errors during cleanup from pip, there is a known bug" - echo >&2 "in certain versions of pip that prevents installing packages local to an" - echo >&2 "application. To install them system-wide please run:" - echo >&2 "$0 --system" - fi - exit 1 -else - echo >&2 "All done. We have: ${installed}" - exit 0 -fi |