mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-09-09 14:24:06 +07:00
Add tools support
This commit is contained in:
@ -43,11 +43,23 @@ add_extension() {
|
||||
# Function to remove extensions
|
||||
remove_extension() {
|
||||
extension=$1
|
||||
if [ -e /etc/php/"$version"/mods-available/$1.ini ]; then
|
||||
sudo phpdismod -v "$version" $1
|
||||
if [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
||||
sudo phpdismod -v "$version" "$extension"
|
||||
fi
|
||||
sudo sed -i "/$1/d" "$ini_file"
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get remove php-$1 -y >/dev/null 2>&1
|
||||
sudo sed -i "/$extension/d" "$ini_file"
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get remove php-"$extension" -y >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# Function to setup a remote tool
|
||||
add_tool() {
|
||||
url=$1
|
||||
tool=$2
|
||||
if [ ! -e /usr/local/bin/"$tool" ]; then
|
||||
rm -rf /usr/local/bin/"${tool:?}"
|
||||
fi
|
||||
sudo curl -o /usr/local/bin/"$tool" -L "$url" >/dev/null 2>&1
|
||||
sudo chmod a+x /usr/local/bin/"$tool"
|
||||
add_log "$tick" "$tool" "Added"
|
||||
}
|
||||
|
||||
# Function to setup the nightly build from master branch
|
||||
@ -64,30 +76,18 @@ setup_master() {
|
||||
}
|
||||
|
||||
# Function to setup PECL
|
||||
setup_pecl() {
|
||||
add_pecl() {
|
||||
update_ppa
|
||||
$apt_install php"$version"-dev php"$version"-xml >/dev/null 2>&1
|
||||
sudo update-alternatives --set php-config /usr/bin/php-config"$version" >/dev/null 2>&1
|
||||
sudo update-alternatives --set phpize /usr/bin/phpize"$version" >/dev/null 2>&1
|
||||
wget https://github.com/pear/pearweb_phars/raw/master/install-pear-nozlib.phar >/dev/null 2>&1
|
||||
sudo php install-pear-nozlib.phar >/dev/null 2>&1
|
||||
sudo rm -rf install-pear-nozlib.phar >/dev/null 2>&1
|
||||
sudo pear config-set php_ini "$ini_file" >/dev/null 2>&1
|
||||
sudo pear config-set auto_discover 1 >/dev/null 2>&1
|
||||
sudo pear channel-update pear.php.net >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# Function to setup composer
|
||||
setup_composer() {
|
||||
if [ ! -e "/usr/bin/composer" ]; then
|
||||
curl -s -L https://getcomposer.org/installer >composer-setup.php
|
||||
if [ "$(curl -s https://composer.github.io/installer.sig)" != "$(php -r "echo hash_file('sha384', 'composer-setup.php');")" ]; then
|
||||
echo >&2 'ERROR: Invalid installer signature'
|
||||
else
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
|
||||
fi
|
||||
rm composer-setup.php
|
||||
fi
|
||||
add_log "$tick" "Composer" "Installed"
|
||||
add_log "$tick" "PECL" "Added"
|
||||
}
|
||||
|
||||
# Function to switch versions of PHP binaries
|
||||
@ -104,13 +104,12 @@ tick="✓"
|
||||
cross="✗"
|
||||
ppa_updated="false"
|
||||
version=$1
|
||||
pecl=$2
|
||||
apt_install="sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y"
|
||||
existing_version=$(php-config --version | cut -c 1-3)
|
||||
semver=$(php -v | head -n 1 | cut -f 2 -d ' ' | cut -f 1 -d '-')
|
||||
|
||||
# Setup PHP
|
||||
step_log "Setup PHP and Composer"
|
||||
step_log "Setup PHP"
|
||||
sudo mkdir -p /var/run
|
||||
sudo mkdir -p /run/php
|
||||
|
||||
@ -150,13 +149,3 @@ ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s
|
||||
ext_dir=$(php -i | grep "extension_dir => /usr" | sed -e "s|.*=> s*||")
|
||||
sudo chmod 777 "$ini_file"
|
||||
add_log "$tick" "PHP" "$status"
|
||||
|
||||
# Setup PECL
|
||||
if [ "$pecl" = "true" ]; then
|
||||
update_ppa
|
||||
setup_pecl
|
||||
add_log "$tick" "PECL" "Installed"
|
||||
fi
|
||||
|
||||
# Setup composer
|
||||
setup_composer
|
||||
|
Reference in New Issue
Block a user