Adding steps for installation including php dependencies
This commit is contained in:
@@ -1,8 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
toolName=roundcube
|
toolName=roundcube
|
||||||
|
toolPhpDeps="php\${phpVersion}-gd php-imagick"
|
||||||
#https://github.com/roundcube/roundcubemail/releases/latest
|
#https://github.com/roundcube/roundcubemail/releases/latest
|
||||||
latestUrl="https://api.github.com/repos/roundcube/roundcubemail/releases/latest"
|
latestUrl="https://api.github.com/repos/roundcube/roundcubemail/releases/latest"
|
||||||
|
latestVersion=
|
||||||
|
tempExtract=
|
||||||
|
tempInstall=
|
||||||
|
phpVersion=
|
||||||
|
|
||||||
# Get script working directory
|
# Get script working directory
|
||||||
# (when called from a different directory)
|
# (when called from a different directory)
|
||||||
@@ -19,6 +24,85 @@ step_config() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step_1_info() { echo "Install $toolName"; }
|
||||||
|
step_1_alias() { ALIAS="install"; }
|
||||||
|
step_1() {
|
||||||
|
local aptOpt=
|
||||||
|
if [ $QUIET -ne 0 ];then
|
||||||
|
aptOpt="-y"
|
||||||
|
fi
|
||||||
|
|
||||||
|
downloadLatest
|
||||||
|
fetchPhpVersion
|
||||||
|
|
||||||
|
if [ ! -z $phpVersion ] ; then
|
||||||
|
exe apt update
|
||||||
|
exe apt install `eval echo "$toolPhpDeps"` $aptOpt
|
||||||
|
fi
|
||||||
|
|
||||||
|
exe chown -R www-data: "$tempExtract"
|
||||||
|
exe cp -nar "$tempExtract" "$RC_LOC"
|
||||||
|
}
|
||||||
|
|
||||||
|
step_2_info() { echo "Install composer"; }
|
||||||
|
step_2() {
|
||||||
|
exe cd "$RC_LOC"
|
||||||
|
local EXPECTED_CHECKSUM="$(wget -q -O - https://composer.github.io/installer.sig)"
|
||||||
|
exe php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||||
|
local ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||||
|
|
||||||
|
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
|
||||||
|
then
|
||||||
|
echoerr ' [E] Invalid installer checksum'
|
||||||
|
exe rm composer-setup.php
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exe php composer-setup.php --quiet
|
||||||
|
saveReturn $?
|
||||||
|
exe rm composer-setup.php
|
||||||
|
endReturn "Composer setup failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
step_3_info() { echo "Configure $toolName"; }
|
||||||
|
step_3_alias() { ALIAS="config"; }
|
||||||
|
step_3() {
|
||||||
|
echo " [I] Recommended composer packages to be added to \"require\" section:"
|
||||||
|
echo ' "melanie2/mobile": "*",'
|
||||||
|
echo ' "roundcube/carddav": "*",'
|
||||||
|
echo ' "alexandregz/twofactor_gauthenticator": "dev-master"'
|
||||||
|
exe read -p "Copy the lines above and press Enter to continue."
|
||||||
|
exe vi "$RC_LOC/composer.json"
|
||||||
|
step postupgrade
|
||||||
|
exit 0
|
||||||
|
echo " [I] Generating mysql database $RC_DATABASE"
|
||||||
|
echo
|
||||||
|
exe $WDIR/mysql.sh createdb_utf8mb4
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo " [I] Now visit: http://url-to-roundcube/installer/"
|
||||||
|
echo
|
||||||
|
echo " ! Check the database password in $RC_LOC/config/config.inc.php"
|
||||||
|
echo " afterwards, the installer may have corrupted some special character"
|
||||||
|
echo
|
||||||
|
echo " ! After installation please delete $RC_LOC/installer"
|
||||||
|
}
|
||||||
|
|
||||||
|
step_10_info() { echo "Configuration notes"; }
|
||||||
|
step_10_alias() { ALIAS="notes"; }
|
||||||
|
step_10() {
|
||||||
|
echo "# smtp port if missing after installation"
|
||||||
|
echo ' // SMTP port (default is 25; use 587 for STARTTLS or 465 for the'
|
||||||
|
echo ' // deprecated SSL over SMTP (aka SMTPS))'
|
||||||
|
echo " \$config['smtp_port'] = 465;"
|
||||||
|
echo
|
||||||
|
echo "# Enable two factor auth (installed with step config) for all user"
|
||||||
|
echo " [$RC_LOC/plugins/twofactor_gauthenticator/config.inc.php]"
|
||||||
|
echo " $rcmail_config['users_allowed_2FA'] = array('.*');"
|
||||||
|
echo
|
||||||
|
echo "# Todo install pspell spell check engine"
|
||||||
|
}
|
||||||
|
|
||||||
step_20_info() {
|
step_20_info() {
|
||||||
echo -n "Create a backup"
|
echo -n "Create a backup"
|
||||||
if [ $CONFIG -ne 0 ] ; then
|
if [ $CONFIG -ne 0 ] ; then
|
||||||
@@ -54,11 +138,10 @@ step_22_info() {
|
|||||||
step_22_alias() { ALIAS="upgrade"; }
|
step_22_alias() { ALIAS="upgrade"; }
|
||||||
step_22() {
|
step_22() {
|
||||||
shift # don't need step number
|
shift # don't need step number
|
||||||
local latestVersion=
|
|
||||||
if [ ! -z $1 ] ; then
|
if [ ! -z $1 ] ; then
|
||||||
latestVersion="$1"
|
latestVersion="$1"
|
||||||
else
|
else
|
||||||
latestVersion=$(curl --silent "$latestUrl" | grep -Po '"tag_name": "\K.*?(?=")')
|
fetchLatestVersion
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $latestVersion ] ; then
|
if [ -z $latestVersion ] ; then
|
||||||
@@ -83,9 +166,43 @@ step_22() {
|
|||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
downloadLatest
|
||||||
|
|
||||||
|
step backup
|
||||||
|
echo " [I] Installing version $latestVersion to $RC_LOC"
|
||||||
|
exe "$tempInstall" "$RC_LOC"
|
||||||
|
echo " [I] Make sure to check composer.json-dist file for upstream changes"
|
||||||
|
}
|
||||||
|
|
||||||
|
step_23_info() { echo "Post upgrade procedure"; }
|
||||||
|
step_23_alias() { ALIAS="postupgrade"; }
|
||||||
|
step_23() {
|
||||||
|
exe cd "$RC_LOC"
|
||||||
|
echo " [I] Starting post update procedure"
|
||||||
|
exe php composer.phar update --no-dev
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchPhpVersion() {
|
||||||
|
if [ ! -z $phpVersion ] ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
phpVersion="$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')"
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchLatestVersion() {
|
||||||
|
if [ ! -z $latestVersion ] ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
latestVersion=$(curl --silent "$latestUrl" | grep -Po '"tag_name": "\K.*?(?=")')
|
||||||
|
}
|
||||||
|
|
||||||
|
downloadLatest() {
|
||||||
|
fetchLatestVersion
|
||||||
|
|
||||||
local downUrl="https://github.com/roundcube/roundcubemail/releases/download/${latestVersion}/roundcubemail-${latestVersion}-complete.tar.gz"
|
local downUrl="https://github.com/roundcube/roundcubemail/releases/download/${latestVersion}/roundcubemail-${latestVersion}-complete.tar.gz"
|
||||||
local tempExtract="$tempDown/roundcubemail-$latestVersion"
|
tempExtract="$tempDown/roundcubemail-$latestVersion"
|
||||||
local tempInstall="$tempExtract/bin/installto.sh"
|
tempInstall="$tempExtract/bin/installto.sh"
|
||||||
|
|
||||||
if [ ! -e "$tempExtract" ] ; then
|
if [ ! -e "$tempExtract" ] ; then
|
||||||
exe mkdir -p "$tempDown"
|
exe mkdir -p "$tempDown"
|
||||||
@@ -97,22 +214,9 @@ step_22() {
|
|||||||
else
|
else
|
||||||
echo " [I] Found existing download: $tempExtract"
|
echo " [I] Found existing download: $tempExtract"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
step backup
|
|
||||||
echo " [I] Installing version $latestVersion to $RC_LOC"
|
|
||||||
exe "$tempInstall" "$RC_LOC"
|
|
||||||
echo " [I] Make sure to check composer.json-dist file for upstream changes"
|
|
||||||
}
|
}
|
||||||
tempDown="/tmp/roundcube"
|
tempDown="/tmp/roundcube"
|
||||||
tempLoc="$tempDown/rc.tar.gz"
|
tempLoc="$tempDown/rc.tar.gz"
|
||||||
|
|
||||||
step_23_info() { echo "Post upgrade procedure"; }
|
|
||||||
step_23_alias() { ALIAS="postupgrade"; }
|
|
||||||
step_23() {
|
|
||||||
exe cd "$RC_LOC"
|
|
||||||
echo " [I] Starting post update procedure"
|
|
||||||
exe php composer.phar update --no-dev
|
|
||||||
}
|
|
||||||
|
|
||||||
VERSION_SEQREV=10
|
VERSION_SEQREV=10
|
||||||
. /usr/local/bin/sequencer.sh
|
. /usr/local/bin/sequencer.sh
|
||||||
|
Reference in New Issue
Block a user