OpenMediaVault_installScript/install
2019-09-16 12:38:01 -05:00

119 lines
3.2 KiB
Bash

#!/bin/bash
declare -l codename
declare -l omvCodename
declare -l omvInstall=""
declare -i version
omvKey="/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"
omvRepo="http://packages.openmediavault.org/public"
omvSources="/etc/apt/sources.list.d/openmediavault.list"
url="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/"
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
export LANG=C.UTF-8
codename="$(lsb_release --codename --short)"
case ${codename} in
jessie)
omvCodename="erasmus"
version=3
;;
stretch)
omvCodename="arrakis"
version=4
;;
buster)
omvCodename="usul"
version=5
;;
*)
echo "Unsupported version. Exiting..."
exit 1
;;
esac
echo "${omvCodename} :: ${version}"
# install openmediavault if not installed already
omvInstall=$(dpkg -l | awk '$2 == "openmediavault" { print $1 }')
if [[ ! "${omvInstall}" == "ii" ]]; then
echo "Installing openmediavault required packages..."
if ! apt-get --yes --no-install-recommends install postfix; then
echo "failed installing postfix"
exit 2
fi
echo "Adding openmediavault repo and key..."
echo "deb ${omvRepo} ${omvCodename} main" > ${omvSources}
wget -O "${omvKey}" ${omvRepo}/archive.key
apt-key add "${omvKey}"
echo "Updating repos..."
if ! apt-get update; then
echo "failed to update apt repos."
exit 2
fi
echo "Install openmediavault-keyring..."
if ! apt-get --yes install openmediavault-keyring; then
echo "failed to install openmediavault-keyring package."
exit 2
fi
echo "Installing openmediavault..."
aptFlags="--yes --auto-remove --show-upgraded --allow-downgrades --allow-change-held-packages --no-install-recommends"
dpkgFlags="--option Dpkg::Options::=\"--force-confdef\" --option DPkg::Options::=\"--force-confold\""
if ! apt-get ${aptFlags} ${dpkgFlags} install openmediavault; then
echo "failed to install openmediavault package."
exit 2
fi
if [ ${version} -eq 5 ]; then
omv-confdbadm populate
elif [ ${version} -lt 5 ]; then
omv-initsystem
omv-mkconf interfaces
omv-mkconf issue
fi
fi
omvInstall=$(dpkg -l | awk '$2 == "openmediavault" { print $1 }')
if [[ ! "${omvInstall}" == "ii" ]]; then
echo "openmediavault package failed to install or is in a bad state."
exit 3
fi
if [ ${version} -eq 5 ]; then
echo "Downloading omv-extras.org plugin for openmediavault 5.x ..."
file="openmediavault-omvextrasorg_latest_all5.deb"
elif [ ${version} -eq 4 ]; then
echo "Downloading omv-extras.org plugin for openmediavault 4.x ..."
file="openmediavault-omvextrasorg_latest_all4.deb"
elif [ ${version} -eq 3 ]; then
echo "Downloading omv-extras.org plugin for openmediavault 3.x ..."
file="openmediavault-omvextrasorg_latest_all3.deb"
else
echo "Unsupported version of openmediavault"
exit 1
fi
if [ -f "${file}" ]; then
rm ${file}
fi
wget --no-check-certificate ${url}/${file}
if [ -f "${file}" ]; then
if ! dpkg --install ${file}; then
echo "Installing other dependencies ..."
apt-get --fix-broken install
fi
echo "Updating repos ..."
apt-get update
else
echo "There was a problem downloading the package."
fi
exit 0