mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
45 lines
1.8 KiB
Bash
45 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Install and initialize Composer in the given directory
|
|
#
|
|
# The installed version is defined by `$composer_version` which should be defined
|
|
# as global prior to calling this helper.
|
|
#
|
|
# Will use `$install_dir` as workdir unless `$composer_workdir` exists (but that shouldnt be necessary)
|
|
#
|
|
# usage: ynh_composer_install
|
|
ynh_composer_install() {
|
|
local workdir="${composer_workdir:-$install_dir}"
|
|
|
|
[[ -n "${composer_version}" ]] || ynh_die "\$composer_version should be defined before calling ynh_composer_install. (In the past, this was called \$YNH_COMPOSER_VERSION)"
|
|
|
|
[[ ! -e "$workdir/composer.phar" ]] || ynh_safe_rm $workdir/composer.phar
|
|
|
|
local composer_url="https://getcomposer.org/download/$composer_version/composer.phar"
|
|
|
|
# NB. we have to declare the var as local first,
|
|
# otherwise 'local foo=$(false) || echo 'pwet'" does'nt work
|
|
# because local always return 0 ...
|
|
local out
|
|
# Timeout option is here to enforce the timeout on dns query and tcp connect (c.f. man wget)
|
|
out=$(wget --tries 3 --no-dns-cache --timeout 900 --no-verbose --output-document=$workdir/composer.phar $composer_url 2>&1) \
|
|
|| ynh_die "$out"
|
|
}
|
|
|
|
# Execute a command with Composer
|
|
#
|
|
# Will use `$install_dir` as workdir unless `$composer_workdir` exists (but that shouldnt be necessary)
|
|
#
|
|
# You may also define `composer_user=root` prior to call this helper if you
|
|
# absolutely need composer to run as root, but this is discouraged...
|
|
#
|
|
# usage: ynh_composer_exec commands
|
|
ynh_composer_exec() {
|
|
local workdir="${composer_workdir:-$install_dir}"
|
|
|
|
COMPOSER_HOME="$workdir/.composer" \
|
|
COMPOSER_MEMORY_LIMIT=-1 \
|
|
sudo -E -u "${composer_user:-$app}" \
|
|
php${php_version} "$workdir/composer.phar" $@ \
|
|
-d "$workdir" --no-interaction --no-ansi 2>&1
|
|
}
|