Files
dokku/plugins/nginx-vhosts/dependencies
Jose Diaz-Gonzalez 6b0cdae3d3 fix: properly handle the nginx installation dependency
- ensure nginx is always installed
- install nginx in the same way for apt-using distros
- do not install software-properties-common or python-software-properties if not needed
2019-01-20 20:57:40 -05:00

75 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
nginx_needs_upgrade() {
declare desc="checks as to whether nginx needs to be installed or upgraded"
local MAJOR_VERSION MINOR_VERSION
local NEEDS_UPGRADE=true
if ! which nginx >/dev/null 2>&1; then
echo $NEEDS_UPGRADE
return
fi
MAJOR_VERSION=$(nginx -v 2>&1 | cut -d'/' -f 2 | awk '{split($0,a,"."); print a[1]}')
MINOR_VERSION=$(nginx -v 2>&1 | cut -d'/' -f 2 | awk '{split($0,a,"."); print a[2]}')
if [[ "$MAJOR_VERSION" -ge "2" ]]; then
NEEDS_UPGRADE=false
elif [[ "$MAJOR_VERSION" -ge "1" ]] && [[ "$MINOR_VERSION" -ge "8" ]]; then
NEEDS_UPGRADE=false
fi
echo $NEEDS_UPGRADE
}
nginx_install() {
declare desc="install nginx and dnsutils"
export DEBIAN_FRONTEND=noninteractive
apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes -qq -y nginx dnsutils
}
nginx_dependencies() {
declare desc="installs dependencies for the nginx-vhosts plugin"
case "$DOKKU_DISTRO" in
debian)
nginx_install
;;
ubuntu)
export DEBIAN_FRONTEND=noninteractive
local NEEDS_UPGRADE=$(nginx_needs_upgrade)
if [[ "$NEEDS_UPGRADE" == "false" ]]; then
return
fi
if ! which nginx >/dev/null 2>&1; then
nginx_install
return
fi
ubuntu_year=$(lsb_release -d | cut -d ' ' -f 2 | awk '{split($0,a,"."); print a[1]}')
ubuntu_month=$(lsb_release -d | cut -d ' ' -f 2 | awk '{split($0,a,"."); print a[2]}')
[[ "$ubuntu_year" -ge "16" ]] && exit 0
[[ "$ubuntu_year" -eq "15" ]] && [[ "$ubuntu_month" -eq "10" ]] && exit 0
[[ -z "$CIRCLECI" ]] && apt-get install -qq -y software-properties-common python-software-properties
[[ -n "$CIRCLECI" ]] && aptitude install -q -y software-properties-common python-software-properties
add-apt-repository -y ppa:nginx/stable
apt-get update -qq >/dev/null
nginx_install
;;
opensuse)
zypper -q in -y nginx bind-utils
;;
arch)
pacman -S --noconfirm --noprogressbar --needed nginx bind-tools
;;
esac
}
nginx_dependencies "$@"