mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-23 04:11:06 +07:00
Add support for update and extension versions
This commit is contained in:
parent
ca33d01e9f
commit
17241e2689
@ -3,7 +3,7 @@ import * as extensions from '../src/extensions';
|
|||||||
describe('Extension tests', () => {
|
describe('Extension tests', () => {
|
||||||
it('checking addExtensionOnWindows', async () => {
|
it('checking addExtensionOnWindows', async () => {
|
||||||
let win32: string = await extensions.addExtension(
|
let win32: string = await extensions.addExtension(
|
||||||
'xdebug, pcov, phalcon4, ast-beta',
|
'xdebug, pcov, phalcon4, ast-beta, grpc-1.2.3',
|
||||||
'7.4',
|
'7.4',
|
||||||
'win32'
|
'win32'
|
||||||
);
|
);
|
||||||
@ -11,6 +11,7 @@ describe('Extension tests', () => {
|
|||||||
expect(win32).toContain('Add-Extension pcov');
|
expect(win32).toContain('Add-Extension pcov');
|
||||||
expect(win32).toContain('phalcon.ps1 phalcon4');
|
expect(win32).toContain('phalcon.ps1 phalcon4');
|
||||||
expect(win32).toContain('Add-Extension ast beta');
|
expect(win32).toContain('Add-Extension ast beta');
|
||||||
|
expect(win32).toContain('Add-Extension grpc stable 1.2.3');
|
||||||
|
|
||||||
win32 = await extensions.addExtension(
|
win32 = await extensions.addExtension(
|
||||||
'phalcon3, does_not_exist',
|
'phalcon3, does_not_exist',
|
||||||
@ -27,7 +28,7 @@ describe('Extension tests', () => {
|
|||||||
|
|
||||||
it('checking addExtensionOnLinux', async () => {
|
it('checking addExtensionOnLinux', async () => {
|
||||||
let linux: string = await extensions.addExtension(
|
let linux: string = await extensions.addExtension(
|
||||||
'xdebug, pcov, ast-beta, xdebug-alpha',
|
'xdebug, pcov, ast-beta, xdebug-alpha, grpc-1.2.3',
|
||||||
'7.4',
|
'7.4',
|
||||||
'linux'
|
'linux'
|
||||||
);
|
);
|
||||||
@ -36,6 +37,7 @@ describe('Extension tests', () => {
|
|||||||
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.4-pcov'
|
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.4-pcov'
|
||||||
);
|
);
|
||||||
expect(linux).toContain('add_unstable_extension ast beta extension');
|
expect(linux).toContain('add_unstable_extension ast beta extension');
|
||||||
|
expect(linux).toContain('add_pecl_extension grpc 1.2.3');
|
||||||
expect(linux).toContain(
|
expect(linux).toContain(
|
||||||
'add_unstable_extension xdebug alpha zend_extension'
|
'add_unstable_extension xdebug alpha zend_extension'
|
||||||
);
|
);
|
||||||
@ -64,13 +66,14 @@ describe('Extension tests', () => {
|
|||||||
|
|
||||||
it('checking addExtensionOnDarwin', async () => {
|
it('checking addExtensionOnDarwin', async () => {
|
||||||
let darwin: string = await extensions.addExtension(
|
let darwin: string = await extensions.addExtension(
|
||||||
'xdebug, pcov, ast-beta',
|
'xdebug, pcov, ast-beta, grpc-1.2.3',
|
||||||
'7.2',
|
'7.2',
|
||||||
'darwin'
|
'darwin'
|
||||||
);
|
);
|
||||||
expect(darwin).toContain('sudo pecl install -f xdebug');
|
expect(darwin).toContain('sudo pecl install -f xdebug');
|
||||||
expect(darwin).toContain('sudo pecl install -f pcov');
|
expect(darwin).toContain('sudo pecl install -f pcov');
|
||||||
expect(darwin).toContain('add_unstable_extension ast beta extension');
|
expect(darwin).toContain('add_unstable_extension ast beta extension');
|
||||||
|
expect(darwin).toContain('sudo pecl install -f grpc-1.2.3');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
|
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
|
||||||
expect(darwin).toContain('phalcon_darwin.sh phalcon3 7.0');
|
expect(darwin).toContain('phalcon_darwin.sh phalcon3 7.0');
|
||||||
|
@ -20,6 +20,9 @@ inputs:
|
|||||||
tools:
|
tools:
|
||||||
description: 'Setup popular tools globally.'
|
description: 'Setup popular tools globally.'
|
||||||
required: false
|
required: false
|
||||||
|
update:
|
||||||
|
description: 'Update PHP if already installed.'
|
||||||
|
required: false
|
||||||
# Deprecated options, do not use. Will not be supported in v2 which will be released around February 1, 2020.
|
# Deprecated options, do not use. Will not be supported in v2 which will be released around February 1, 2020.
|
||||||
extension-csv:
|
extension-csv:
|
||||||
description: 'Deprecated! Use extensions instead.'
|
description: 'Deprecated! Use extensions instead.'
|
||||||
|
19
dist/index.js
vendored
19
dist/index.js
vendored
@ -2368,7 +2368,8 @@ function build(filename, version, os_version) {
|
|||||||
const pecl = yield utils.getInput('pecl', false);
|
const pecl = yield utils.getInput('pecl', false);
|
||||||
let tools_csv = yield utils.getInput('tools', false);
|
let tools_csv = yield utils.getInput('tools', false);
|
||||||
if (pecl == 'true' ||
|
if (pecl == 'true' ||
|
||||||
/.*-(beta|alpha|devel|snapshot).*/.test(extension_csv)) {
|
/.*-(beta|alpha|devel|snapshot).*/.test(extension_csv) ||
|
||||||
|
/.*-(\d+\.\d+\.\d+).*/.test(extension_csv)) {
|
||||||
tools_csv = 'pecl, ' + tools_csv;
|
tools_csv = 'pecl, ' + tools_csv;
|
||||||
}
|
}
|
||||||
let script = yield utils.readScript(filename, version, os_version);
|
let script = yield utils.readScript(filename, version, os_version);
|
||||||
@ -2392,9 +2393,9 @@ exports.build = build;
|
|||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const os_version = process.platform;
|
|
||||||
let version = yield utils.getInput('php-version', true);
|
let version = yield utils.getInput('php-version', true);
|
||||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||||
|
const os_version = process.platform;
|
||||||
// check the os version and run the respective script
|
// check the os version and run the respective script
|
||||||
let script_path = '';
|
let script_path = '';
|
||||||
switch (os_version) {
|
switch (os_version) {
|
||||||
@ -2761,6 +2762,16 @@ function addExtensionWindows(extension_csv, version, pipe) {
|
|||||||
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
||||||
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
|
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
|
||||||
break;
|
break;
|
||||||
|
// match exact versions
|
||||||
|
case /.*-\d+\.\d+\.\d+/.test(version_extension):
|
||||||
|
script +=
|
||||||
|
'\nAdd-Extension ' +
|
||||||
|
extension_name +
|
||||||
|
' ' +
|
||||||
|
'stable' +
|
||||||
|
' ' +
|
||||||
|
stability;
|
||||||
|
return;
|
||||||
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
script +=
|
script +=
|
||||||
@ -2811,6 +2822,10 @@ function addExtensionLinux(extension_csv, version, pipe) {
|
|||||||
' ' +
|
' ' +
|
||||||
prefix;
|
prefix;
|
||||||
return;
|
return;
|
||||||
|
// match exact versions
|
||||||
|
case /.*-\d+\.\d+\.\d+/.test(version_extension):
|
||||||
|
script += '\nadd_pecl_extension ' + extension_name + ' ' + stability;
|
||||||
|
return;
|
||||||
// match 5.6gearman..7.4gearman
|
// match 5.6gearman..7.4gearman
|
||||||
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
install_command =
|
install_command =
|
||||||
|
@ -102,6 +102,16 @@ export async function addExtensionWindows(
|
|||||||
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
||||||
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
|
script += '\nAdd-Extension ' + extension_name + ' ' + stability;
|
||||||
break;
|
break;
|
||||||
|
// match exact versions
|
||||||
|
case /.*-\d+\.\d+\.\d+/.test(version_extension):
|
||||||
|
script +=
|
||||||
|
'\nAdd-Extension ' +
|
||||||
|
extension_name +
|
||||||
|
' ' +
|
||||||
|
'stable' +
|
||||||
|
' ' +
|
||||||
|
stability;
|
||||||
|
return;
|
||||||
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
script +=
|
script +=
|
||||||
@ -152,6 +162,10 @@ export async function addExtensionLinux(
|
|||||||
' ' +
|
' ' +
|
||||||
prefix;
|
prefix;
|
||||||
return;
|
return;
|
||||||
|
// match exact versions
|
||||||
|
case /.*-\d+\.\d+\.\d+/.test(version_extension):
|
||||||
|
script += '\nadd_pecl_extension ' + extension_name + ' ' + stability;
|
||||||
|
return;
|
||||||
// match 5.6gearman..7.4gearman
|
// match 5.6gearman..7.4gearman
|
||||||
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
install_command =
|
install_command =
|
||||||
|
@ -32,7 +32,8 @@ export async function build(
|
|||||||
let tools_csv: string = await utils.getInput('tools', false);
|
let tools_csv: string = await utils.getInput('tools', false);
|
||||||
if (
|
if (
|
||||||
pecl == 'true' ||
|
pecl == 'true' ||
|
||||||
/.*-(beta|alpha|devel|snapshot).*/.test(extension_csv)
|
/.*-(beta|alpha|devel|snapshot).*/.test(extension_csv) ||
|
||||||
|
/.*-(\d+\.\d+\.\d+).*/.test(extension_csv)
|
||||||
) {
|
) {
|
||||||
tools_csv = 'pecl, ' + tools_csv;
|
tools_csv = 'pecl, ' + tools_csv;
|
||||||
}
|
}
|
||||||
@ -58,9 +59,10 @@ export async function build(
|
|||||||
*/
|
*/
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const os_version: string = process.platform;
|
|
||||||
let version: string = await utils.getInput('php-version', true);
|
let version: string = await utils.getInput('php-version', true);
|
||||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||||
|
const os_version: string = process.platform;
|
||||||
|
|
||||||
// check the os version and run the respective script
|
// check the os version and run the respective script
|
||||||
let script_path = '';
|
let script_path = '';
|
||||||
switch (os_version) {
|
switch (os_version) {
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
linux_extension_dir() {
|
|
||||||
apiv=$1
|
|
||||||
if [ "$version" = "5.3" ]; then
|
|
||||||
echo "/home/runner/php/5.3.29/lib/php/extensions/no-debug-non-zts-$apiv"
|
|
||||||
elif [[ "$version" =~ $old_versions_linux ]]; then
|
|
||||||
echo "/usr/lib/php5/$apiv"
|
|
||||||
elif [ "$version" = "8.0" ]; then
|
|
||||||
echo "/home/runner/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
|
|
||||||
else
|
|
||||||
echo "/usr/lib/php/$apiv"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
darwin_extension_dir() {
|
|
||||||
apiv=$1
|
|
||||||
if [[ "$version" =~ $old_versions_darwin ]]; then
|
|
||||||
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$apiv"
|
|
||||||
else
|
|
||||||
echo "/usr/local/lib/php/pecl/$apiv"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_apiv() {
|
|
||||||
case $version in
|
|
||||||
5.3)
|
|
||||||
echo "20090626"
|
|
||||||
;;
|
|
||||||
5.4)
|
|
||||||
echo "20100525"
|
|
||||||
;;
|
|
||||||
5.5)
|
|
||||||
echo "20121212"
|
|
||||||
;;
|
|
||||||
5.6)
|
|
||||||
echo "20131226"
|
|
||||||
;;
|
|
||||||
7.0)
|
|
||||||
echo "20151012"
|
|
||||||
;;
|
|
||||||
7.1)
|
|
||||||
echo "20160303"
|
|
||||||
;;
|
|
||||||
7.2)
|
|
||||||
echo "20170718"
|
|
||||||
;;
|
|
||||||
7.3)
|
|
||||||
echo "20180731"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [ "$version" = "8.0" ]; then
|
|
||||||
php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
|
|
||||||
else
|
|
||||||
semver=$(curl -sSL --retry 5 https://github.com/php/php-src/releases | grep "$flags" "(php-$version.[0-9]+)".zip | head -n 1 | grep "$flags" '[0-9]+\.[0-9]+\.[0-9]+')
|
|
||||||
php_h="https://raw.githubusercontent.com/php/php-src/PHP-$semver/main/php.h"
|
|
||||||
fi
|
|
||||||
curl -sSL --retry 5 "$php_h" | grep "PHP_API_VERSION" | cut -d' ' -f 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
version=$2
|
|
||||||
old_versions_linux="5.[4-5]"
|
|
||||||
old_versions_darwin="5.[3-5]"
|
|
||||||
os=$(uname -s)
|
|
||||||
if [ "$os" = "Linux" ]; then
|
|
||||||
flags='-Po'
|
|
||||||
apiv=$(get_apiv)
|
|
||||||
dir=$(linux_extension_dir "$apiv")
|
|
||||||
sudo mkdir -p "$dir" && sudo chown -R "$USER":"$(id -g -n)" $(dirname "$dir")
|
|
||||||
elif [ "$os" = "Darwin" ]; then
|
|
||||||
flags='-Eo'
|
|
||||||
apiv=$(get_apiv)
|
|
||||||
dir=$(darwin_extension_dir "$apiv")
|
|
||||||
else
|
|
||||||
dir='C:\\tools\\php\\ext'
|
|
||||||
fi
|
|
||||||
hash=$(echo -n "$1" | openssl dgst -sha256 | cut -d ' ' -f 2)
|
|
||||||
echo "::set-output name=ext_dir::$dir"
|
|
||||||
echo "::set-output name=ext_hash::$hash"
|
|
@ -24,11 +24,12 @@ update_ppa() {
|
|||||||
else
|
else
|
||||||
ppa="ondrej-ubuntu-php*.list"
|
ppa="ondrej-ubuntu-php*.list"
|
||||||
fi
|
fi
|
||||||
find /etc/apt/sources.list.d -type f -name "$ppa" -exec sudo DEBIAN_FRONTEND=noninteractive apt-fast update -o Dir::Etc::sourcelist="{}" ';' >/dev/null 2>&1
|
find /etc/apt/sources.list.d -type f -name "$ppa" -exec sudo "$debconf_fix" apt-fast update -o Dir::Etc::sourcelist="{}" ';' >/dev/null 2>&1
|
||||||
echo "true"
|
echo "true"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to configure PECL
|
||||||
configure_pecl() {
|
configure_pecl() {
|
||||||
if [ "$pecl_config" = "false" ] && [ -e /usr/bin/pecl ]; then
|
if [ "$pecl_config" = "false" ] && [ -e /usr/bin/pecl ]; then
|
||||||
for tool in pear pecl; do
|
for tool in pear pecl; do
|
||||||
@ -247,7 +248,8 @@ ppa_updated="false"
|
|||||||
pecl_config="false"
|
pecl_config="false"
|
||||||
version=$1
|
version=$1
|
||||||
old_versions="5.[4-5]"
|
old_versions="5.[4-5]"
|
||||||
apt_install="sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y"
|
debconf_fix="DEBIAN_FRONTEND=noninteractive"
|
||||||
|
apt_install="sudo $debconf_fix apt-fast install -y"
|
||||||
existing_version=$(php-config --version | cut -c 1-3)
|
existing_version=$(php-config --version | cut -c 1-3)
|
||||||
|
|
||||||
# Setup PHP
|
# Setup PHP
|
||||||
@ -267,33 +269,37 @@ if [ "$existing_version" != "$version" ]; then
|
|||||||
fi
|
fi
|
||||||
$apt_install php"$version" php"$version"-curl php"$version"-mbstring php"$version"-xml >/dev/null 2>&1
|
$apt_install php"$version" php"$version"-curl php"$version"-mbstring php"$version"-xml >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
status="installed"
|
status="Installed"
|
||||||
else
|
else
|
||||||
status="switched"
|
if [ "$update" = "true" ]; then
|
||||||
|
$apt_install php"$version" >/dev/null 2>&1
|
||||||
|
status="Updated to"
|
||||||
|
else
|
||||||
|
status="Switched to"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# PHP 5.3 is switched by install script, for rest switch_version
|
||||||
if [ "$version" != "5.3" ]; then
|
if [ "$version" != "5.3" ]; then
|
||||||
switch_version
|
switch_version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$version" = "8.0" ]; then
|
|
||||||
semver=$(php -v | head -n 1 | cut -f 2 -d ' ')
|
|
||||||
else
|
else
|
||||||
semver=$(php -v | head -n 1 | cut -f 2 -d ' ' | cut -f 1 -d '-')
|
if [ "$update" = "true" ]; then
|
||||||
|
$apt_install php"$version" >/dev/null 2>&1
|
||||||
|
status="Updated to"
|
||||||
|
else
|
||||||
|
status="Found"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$status" != "switched" ]; then
|
semver=$(php -v | head -n 1 | cut -f 2 -d ' ')
|
||||||
status="Installed PHP $semver"
|
if [ ! "$version" = "8.0" ]; then
|
||||||
else
|
semver=$(echo "$semver" | cut -f 1 -d '-')
|
||||||
status="Switched to PHP $semver"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
semver=$(php -v | head -n 1 | cut -f 2 -d ' ' | cut -f 1 -d '-')
|
|
||||||
status="PHP $semver Found"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
||||||
ext_dir=$(php -i | grep "extension_dir => /" | sed -e "s|.*=> s*||")
|
ext_dir=$(php -i | grep "extension_dir => /" | sed -e "s|.*=> s*||")
|
||||||
scan_dir=$(php --ini | grep additional | sed -e "s|.*: s*||")
|
scan_dir=$(php --ini | grep additional | sed -e "s|.*: s*||")
|
||||||
sudo chmod 777 "$ini_file"
|
sudo chmod 777 "$ini_file"
|
||||||
add_log "$tick" "PHP" "$status"
|
add_log "$tick" "PHP" "$status PHP $semver"
|
||||||
|
@ -31,7 +31,12 @@ Function Add-Extension {
|
|||||||
[ValidateNotNull()]
|
[ValidateNotNull()]
|
||||||
[ValidateSet('stable', 'beta', 'alpha', 'devel', 'snapshot')]
|
[ValidateSet('stable', 'beta', 'alpha', 'devel', 'snapshot')]
|
||||||
[string]
|
[string]
|
||||||
$mininum_stability = 'stable'
|
$mininum_stability = 'stable',
|
||||||
|
[Parameter(Position = 2, Mandatory = $false)]
|
||||||
|
[ValidateNotNull()]
|
||||||
|
[ValidatePattern('^\d+(\.\d+){0,2}$')]
|
||||||
|
[string]
|
||||||
|
$extension_version = ''
|
||||||
)
|
)
|
||||||
try {
|
try {
|
||||||
$extension_info = Get-PhpExtension -Path $php_dir | Where-Object { $_.Name -eq $extension -or $_.Handle -eq $extension }
|
$extension_info = Get-PhpExtension -Path $php_dir | Where-Object { $_.Name -eq $extension -or $_.Handle -eq $extension }
|
||||||
@ -50,7 +55,7 @@ Function Add-Extension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Install-PhpExtension -Extension $extension -MinimumStability $mininum_stability -Path $php_dir
|
Install-PhpExtension -Extension $extension -MinimumStability $mininum_stability -Version $extension_version -Path $php_dir
|
||||||
Add-Log $tick $extension "Installed and enabled"
|
Add-Log $tick $extension "Installed and enabled"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -192,8 +197,10 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
|||||||
|
|
||||||
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force >$null 2>&1
|
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force >$null 2>&1
|
||||||
} else {
|
} else {
|
||||||
$updated = Update-Php $php_dir >$null 2>&1
|
if((Test-Path env:update) -and $env:update -eq 'true') {
|
||||||
if($updated -eq $False) {
|
Update-Php $php_dir > $null 2>&1
|
||||||
|
$status = "Updated to"
|
||||||
|
} else {
|
||||||
$status = "Found"
|
$status = "Found"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user