mirror of
https://github.com/YunoHost/install_script.git
synced 2024-09-03 20:06:25 +02:00
Have a function to check install script assertions before anything else
This commit is contained in:
parent
0c89145d31
commit
b0f680e271
1 changed files with 34 additions and 22 deletions
|
@ -79,11 +79,7 @@ function main()
|
||||||
{
|
{
|
||||||
parse_options
|
parse_options
|
||||||
|
|
||||||
step ensure_root || die "This script must be run as root"
|
check_assertions
|
||||||
|
|
||||||
if is_raspbian ; then
|
|
||||||
step ensure_pi_logout || die "The user pi should be logged out"
|
|
||||||
fi
|
|
||||||
|
|
||||||
step upgrade_system || die "Unable to update the system"
|
step upgrade_system || die "Unable to update the system"
|
||||||
step installscript_dependencies || die "Unable to install dependencies to install script"
|
step installscript_dependencies || die "Unable to install dependencies to install script"
|
||||||
|
@ -178,7 +174,7 @@ function ensure_root() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function ensure_pi_logout() {
|
function user_pi_logged_out() {
|
||||||
who | grep pi > /dev/null && return 1
|
who | grep pi > /dev/null && return 1
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -196,6 +192,31 @@ function is_raspbian() {
|
||||||
# Installation steps #
|
# Installation steps #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
function check_assertions()
|
||||||
|
{
|
||||||
|
# Assert we're on Debian
|
||||||
|
# Note : we do not rely on lsb_release to avoid installing a dependency
|
||||||
|
# only to check this...
|
||||||
|
[[ -f "/etc/debian_version" ]] || die "This script can only be ran on Debian."
|
||||||
|
|
||||||
|
# Assert we're on Stretch
|
||||||
|
# Note : we do not rely on lsb_release to avoid installing a dependency
|
||||||
|
# only to check this...
|
||||||
|
[[ ! "$(cat /etc/debian_version)" =~ ^9.* ]] || die "This script can only be ran on Debian Stretch."
|
||||||
|
|
||||||
|
# Assert we're root
|
||||||
|
[[ "$(id -u)" != "0" ]] || die "This script must be run as root."
|
||||||
|
|
||||||
|
# Assert systemd is installed
|
||||||
|
command -v systemctl > /dev/null || die "YunoHost requires systemd to be installed."
|
||||||
|
|
||||||
|
# If we're on Raspbian, we want the user 'pi' to be logged out because
|
||||||
|
# it's going to be deleted for security reasons...
|
||||||
|
if is_raspbian ; then
|
||||||
|
user_pi_logged_out || die "The user pi should be logged out."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function apt_get_wrapper() {
|
function apt_get_wrapper() {
|
||||||
if [[ "$AUTOMODE" == "0" ]] ;
|
if [[ "$AUTOMODE" == "0" ]] ;
|
||||||
then
|
then
|
||||||
|
@ -215,12 +236,12 @@ function upgrade_system() {
|
||||||
|
|
||||||
apt_get_wrapper -y dist-upgrade \
|
apt_get_wrapper -y dist-upgrade \
|
||||||
|| return 2
|
|| return 2
|
||||||
|
|
||||||
if is_raspbian ; then
|
if is_raspbian ; then
|
||||||
apt_get_wrapper -o Dpkg::Options::="--force-confold" \
|
apt_get_wrapper -o Dpkg::Options::="--force-confold" \
|
||||||
-y --force-yes install rpi-update \
|
-y --force-yes install rpi-update \
|
||||||
|| return 3
|
|| return 3
|
||||||
|
|
||||||
rpi-update >> $YUNOHOST_LOG 2>&1 \
|
rpi-update >> $YUNOHOST_LOG 2>&1 \
|
||||||
|| return 4
|
|| return 4
|
||||||
|
|
||||||
|
@ -270,18 +291,9 @@ Are you sure you want to proceed with the installation of Yunohost?
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup_package_source() {
|
function setup_package_source() {
|
||||||
|
|
||||||
local CUSTOMAPT=/etc/apt/sources.list.d/yunohost.list
|
local CUSTOMAPT=/etc/apt/sources.list.d/yunohost.list
|
||||||
|
|
||||||
# Check current system version and dependencies
|
|
||||||
|
|
||||||
if [[ ! $THIS_MACHINE_RELEASE =~ ^jessie|stretch$ ]]; then
|
|
||||||
echo "Current $DISTRIB only works on Debian Jessie or Stretch for the moment."
|
|
||||||
return 1
|
|
||||||
elif ! command -v systemctl > /dev/null ; then
|
|
||||||
echo "Current $DISTRIB only works with systemd for the moment."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Debian repository
|
# Debian repository
|
||||||
|
|
||||||
# FIXME : move "vinaigrette." to "repo." at some point...
|
# FIXME : move "vinaigrette." to "repo." at some point...
|
||||||
|
@ -305,7 +317,7 @@ function apt_update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function register_debconf() {
|
function register_debconf() {
|
||||||
debconf-set-selections << EOF
|
debconf-set-selections << EOF
|
||||||
slapd slapd/password1 password yunohost
|
slapd slapd/password1 password yunohost
|
||||||
slapd slapd/password2 password yunohost
|
slapd slapd/password2 password yunohost
|
||||||
slapd slapd/domain string yunohost.org
|
slapd slapd/domain string yunohost.org
|
||||||
|
@ -373,7 +385,7 @@ function install_yunohost_packages() {
|
||||||
# Allow sudo removal even if no root password has been set (on some DO
|
# Allow sudo removal even if no root password has been set (on some DO
|
||||||
# droplet or Vagrant virtual machines), as YunoHost use sudo-ldap
|
# droplet or Vagrant virtual machines), as YunoHost use sudo-ldap
|
||||||
export SUDO_FORCE_REMOVE=yes
|
export SUDO_FORCE_REMOVE=yes
|
||||||
|
|
||||||
# On some machines (e.g. OVH VPS), the /etc/resolv.conf is immutable
|
# On some machines (e.g. OVH VPS), the /etc/resolv.conf is immutable
|
||||||
# We need to make it mutable for the resolvconf dependency to be installed
|
# We need to make it mutable for the resolvconf dependency to be installed
|
||||||
chattr -i /etc/resolv.conf 2>/dev/null || true
|
chattr -i /etc/resolv.conf 2>/dev/null || true
|
||||||
|
@ -432,10 +444,10 @@ function clean_image() {
|
||||||
yes | ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa >> $YUNOHOST_LOG 2>&1
|
yes | ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa >> $YUNOHOST_LOG 2>&1
|
||||||
yes | ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa >> $YUNOHOST_LOG 2>&1
|
yes | ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa >> $YUNOHOST_LOG 2>&1
|
||||||
yes | ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521 >> $YUNOHOST_LOG 2>&1
|
yes | ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521 >> $YUNOHOST_LOG 2>&1
|
||||||
|
|
||||||
# Deleting logs ...
|
# Deleting logs ...
|
||||||
find /var/log -type f -exec rm {} \; >> $YUNOHOST_LOG 2>&1
|
find /var/log -type f -exec rm {} \; >> $YUNOHOST_LOG 2>&1
|
||||||
|
|
||||||
# Purging apt ...
|
# Purging apt ...
|
||||||
apt-get --purge clean >> $YUNOHOST_LOG 2>&1
|
apt-get --purge clean >> $YUNOHOST_LOG 2>&1
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue