diff --git a/scripts/_common.sh b/scripts/_common.sh index e5b02a2..54f3ad5 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -16,3 +16,46 @@ exec_as() { sudo -u "$USER" "$@" fi } + +# Execute a command with Composer +# +# usage: ynh_composer_exec [--workdir=$final_path] --commands="commands" +# | arg: -w, --workdir - The directory from where the command will be executed. Default $final_path. +# | arg: -c, --commands - Commands to execute. +ynh_composer_exec () { + # Declare an array to define the options of this helper. + local legacy_args=wc + declare -Ar args_array=( [w]=workdir= [c]=commands= ) + local workdir + local commands + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + workdir="${workdir:-$final_path}" + + COMPOSER_HOME="$workdir/.composer" \ + php "$workdir/composer.phar" $commands \ + -d "$workdir" --quiet --no-interaction +} + +# Install and initialize Composer in the given directory +# +# usage: ynh_install_composer [--workdir=$final_path] +# | arg: -w, --workdir - The directory from where the command will be executed. Default $final_path. +ynh_install_composer () { + # Declare an array to define the options of this helper. + local legacy_args=w + declare -Ar args_array=( [w]=workdir= ) + local workdir + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + workdir="${workdir:-$final_path}" + + curl -sS https://getcomposer.org/installer \ + | COMPOSER_HOME="$workdir/.composer" \ + php -- --quiet --install-dir="$workdir" \ + || ynh_die "Unable to install Composer." + + # update dependencies to create composer.lock + ynh_composer_exec --workdir="$workdir" --commands="install --no-dev" \ + || ynh_die "Unable to update core dependencies with Composer." +} diff --git a/scripts/install b/scripts/install index 3e26d0c..084ec89 100644 --- a/scripts/install +++ b/scripts/install @@ -146,22 +146,10 @@ touch "$final_path/admin/stdout.log" #================================================= ynh_print_info "Initializing database..." -# Set permissions for initialization -chown -R $app: "$final_path" - # Install composer -curl -sS https://getcomposer.org/installer \ - | COMPOSER_HOME="$final_path/.composer" \ - php -- --quiet --install-dir="$final_path" \ - || ynh_die "Unable to install Composer" +ynh_install_composer -# Update dependencies to create composer.lock -exec_as $app COMPOSER_HOME="$final_path/.composer" \ - php "$final_path/composer.phar" install --no-dev \ - -d "$final_path" --quiet --no-interaction \ - || ynh_die "Unable to update core dependencies with Composer" - -ynh_exec_warn_less exec_as $app php "$final_path/admin/migration.php" +ynh_exec_warn_less php "$final_path/admin/migration.php" #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index 030ec26..331e3e8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -178,22 +178,10 @@ touch "$final_path/admin/stdout.log" #================================================= ynh_print_info "Upgrading database..." -# Set permissions for initilization -chown -R $app: "$final_path" - # Install composer -curl -sS https://getcomposer.org/installer \ - | COMPOSER_HOME="$final_path/.composer" \ - php -- --quiet --install-dir="$final_path" \ - || ynh_die "Unable to install Composer" +ynh_install_composer -# Update dependencies to create composer.lock -exec_as $app COMPOSER_HOME="$final_path/.composer" \ - php "$final_path/composer.phar" install --no-dev \ - -d "$final_path" --quiet --no-interaction \ - || ynh_die "Unable to update core dependencies with Composer" - -ynh_exec_warn_less exec_as $app php "$final_path/admin/migration.php" +ynh_exec_warn_less php "$final_path/admin/migration.php" #================================================= # GENERIC FINALIZATION