Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cb74689

Browse files
committed
Use packages from shivammathur/php-ubuntu
1 parent 8f542ea commit cb74689

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

src/scripts/linux.sh

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,35 @@ add_log() {
1616
fi
1717
}
1818

19-
# Function to backup and cleanup package lists
19+
# Function to backup and cleanup package lists.
2020
cleanup_lists() {
2121
if [ ! -e /etc/apt/sources.list.d.save ]; then
22-
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save || true
22+
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save
2323
sudo mkdir /etc/apt/sources.list.d
24-
sudo mv /etc/apt/sources.list.d.save/*ondrej*.list /etc/apt/sources.list.d/ || true
24+
sudo mv /etc/apt/sources.list.d.save/*ondrej*.list /etc/apt/sources.list.d/
25+
sudo mv /etc/apt/sources.list.d.save/*dotdeb*.list /etc/apt/sources.list.d/ 2>/dev/null || true
2526
trap "sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
2627
fi
2728
}
2829

29-
# Function to update php ppa
30+
# Function to add ppa:ondrej/php.
31+
add_ppa() {
32+
if ! apt-cache policy | grep -q ondrej/php; then
33+
cleanup_lists
34+
LC_ALL=C.UTF-8 sudo apt-add-repository ppa:ondrej/php -y
35+
if [ "$DISTRIB_RELEASE" = "16.04" ]; then
36+
sudo "$debconf_fix" apt-get update
37+
fi
38+
fi
39+
}
40+
41+
# Function to update the package lists.
3042
update_lists() {
31-
if [ "$lists_updated" = "false" ]; then
32-
cleanup_lists >/dev/null 2>&1
43+
if [ ! -e /tmp/setup_php ]; then
44+
[ "$DISTRIB_RELEASE" = "20.04" ] && add_ppa >/dev/null 2>&1
45+
cleanup_lists
3346
sudo "$debconf_fix" apt-get update >/dev/null 2>&1
47+
echo '' | sudo tee /tmp/setup_php >/dev/null 2>&1
3448
fi
3549
}
3650

@@ -237,6 +251,16 @@ setup_master() {
237251
curl "${curl_opts[@]}" https://github.com/shivammathur/php-builder/releases/latest/download/install.sh | bash -s "github"
238252
}
239253

254+
add_packaged_php() {
255+
if [ "${use_package_cache:-true}" = "false" ]; then
256+
update_lists
257+
IFS=' ' read -r -a packages <<<"$(echo "cli curl mbstring xml intl" | sed "s/[^ ]*/php$version-&/g")"
258+
$apt_install "${packages[@]}"
259+
else
260+
curl "${curl_opts[@]}" https://github.com/shivammathur/php-ubuntu/releases/latest/download/install.sh | bash -s "$version"
261+
fi
262+
}
263+
240264
# Function to setup PECL
241265
add_pecl() {
242266
add_devtools
@@ -277,7 +301,6 @@ configure_php() {
277301
# Variables
278302
tick=""
279303
cross=""
280-
lists_updated="false"
281304
version=$1
282305
dist=$2
283306
debconf_fix="DEBIAN_FRONTEND=noninteractive"
@@ -293,21 +316,13 @@ existing_version=$(php-config --version 2>/dev/null | cut -c 1-3)
293316
step_log "Setup PHP"
294317
sudo mkdir -m 777 -p "$HOME/.composer" /var/run /run/php
295318
. /etc/lsb-release
296-
if [ "$DISTRIB_RELEASE" = "20.04" ]; then
297-
if ! apt-cache policy | grep -q ondrej/php; then
298-
cleanup_lists >/dev/null 2>&1
299-
LC_ALL=C.UTF-8 sudo apt-add-repository ppa:ondrej/php -y >/dev/null 2>&1
300-
fi
301-
fi
302319

303320
if [ "$existing_version" != "$version" ]; then
304321
if [ ! -e "/usr/bin/php$version" ]; then
305322
if [ "$version" = "8.0" ]; then
306323
setup_master >/dev/null 2>&1
307324
else
308-
update_lists
309-
IFS=' ' read -r -a packages <<< "$(echo "cli curl mbstring xml intl" | sed "s/[^ ]*/php$version-&/g")"
310-
$apt_install "${packages[@]}" >/dev/null 2>&1
325+
add_packaged_php >/dev/null 2>&1
311326
fi
312327
status="Installed"
313328
else

0 commit comments

Comments
 (0)