diff --git a/scripts/_common.sh b/scripts/_common.sh index b4bb1eb..d8051ab 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -12,3 +12,37 @@ ynh_delete_file_checksum () { local checksum_setting_name=checksum_${1//[\/ ]/_} # Replace all '/' and ' ' by '_' ynh_app_setting_delete $app $checksum_setting_name } + +# ============================================================================= +# COMMON ROUNDCUBE FUNCTIONS +# ============================================================================= + +# Execute a composer command from a given directory +# usage: composer_exec workdir COMMAND [ARG ...] +exec_composer() { + local workdir=$1 + shift 1 + + COMPOSER_HOME="${workdir}/.composer" \ + php "${workdir}/composer.phar" $@ \ + -d "${workdir}" --quiet --no-interaction +} + +# Install and initialize Composer in the given directory +# usage: init_composer destdir +init_composer() { + local destdir=$1 + + # install composer + curl -sS https://getcomposer.org/installer \ + | COMPOSER_HOME="${destdir}/.composer" \ + php -- --quiet --install-dir="$destdir" \ + || ynh_die "Unable to install Composer" + + # install composer.json + cp "${destdir}/composer.json-dist" "${destdir}/composer.json" + + # update dependencies to create composer.lock + exec_composer "$destdir" install --no-dev \ + || ynh_die "Unable to update Roundcube core dependencies" +}