@@ -16,21 +16,35 @@ add_log() {
16
16
fi
17
17
}
18
18
19
- # Function to backup and cleanup package lists
19
+ # Function to backup and cleanup package lists.
20
20
cleanup_lists () {
21
21
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
23
23
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
25
26
trap " sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
26
27
fi
27
28
}
28
29
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.
30
42
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
33
46
sudo " $debconf_fix " apt-get update > /dev/null 2>&1
47
+ echo ' ' | sudo tee /tmp/setup_php > /dev/null 2>&1
34
48
fi
35
49
}
36
50
@@ -237,6 +251,16 @@ setup_master() {
237
251
curl " ${curl_opts[@]} " https://github.com/shivammathur/php-builder/releases/latest/download/install.sh | bash -s " github"
238
252
}
239
253
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
+
240
264
# Function to setup PECL
241
265
add_pecl () {
242
266
add_devtools
@@ -277,7 +301,6 @@ configure_php() {
277
301
# Variables
278
302
tick=" ✓"
279
303
cross=" ✗"
280
- lists_updated=" false"
281
304
version=$1
282
305
dist=$2
283
306
debconf_fix=" DEBIAN_FRONTEND=noninteractive"
@@ -293,21 +316,13 @@ existing_version=$(php-config --version 2>/dev/null | cut -c 1-3)
293
316
step_log " Setup PHP"
294
317
sudo mkdir -m 777 -p " $HOME /.composer" /var/run /run/php
295
318
. /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
302
319
303
320
if [ " $existing_version " != " $version " ]; then
304
321
if [ ! -e " /usr/bin/php$version " ]; then
305
322
if [ " $version " = " 8.0" ]; then
306
323
setup_master > /dev/null 2>&1
307
324
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
311
326
fi
312
327
status=" Installed"
313
328
else
0 commit comments