Skip to content

Commit 9eaa66d

Browse files
committed
Add support for event extension on unix
1 parent da9dfe4 commit 9eaa66d

4 files changed

Lines changed: 56 additions & 5 deletions

File tree

dist/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ async function addExtensionDarwin(extension_csv, version) {
245245
add_script += await utils.parseExtensionSource(extension, ext_prefix);
246246
return;
247247
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
248-
case /^couchbase|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
248+
case /^couchbase|^event|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
249249
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
250250
case /(5\.6|7\.[0-3])phalcon3|7\.[2-4]phalcon4/.test(version_extension):
251251
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
@@ -359,7 +359,7 @@ async function addExtensionLinux(extension_csv, version) {
359359
return;
360360
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
361361
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
362-
case /^couchbase|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
362+
case /^couchbase|^event|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(extension):
363363
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
364364
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
365365
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):

src/configs/brew_extensions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
amqp=amqp
22
apcu=apcu
33
couchbase=couchbase
4+
event=event
45
expect=expect
56
gnupg=gnupg
67
grpc=grpc

src/extensions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ export async function addExtensionDarwin(
3333
return;
3434
// match 5.3blackfire...8.1blackfire
3535
// match 5.3blackfire-(semver)...8.1blackfire-(semver)
36-
// match couchbase, geos, pdo_oci, oci8, http, pecl_http
36+
// match couchbase, event, geos, pdo_oci, oci8, http, pecl_http
3737
// match 5.3ioncube...7.4ioncube
3838
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
3939
case /^(5\.[3-6]|7\.[0-4]|8\.[0-1])blackfire(-\d+\.\d+\.\d+)?$/.test(
4040
version_extension
4141
):
42-
case /^couchbase|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
42+
case /^couchbase|^event|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
4343
extension
4444
):
4545
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
@@ -262,7 +262,7 @@ export async function addExtensionLinux(
262262
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(
263263
version_extension
264264
):
265-
case /^couchbase|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
265+
case /^couchbase|^event|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
266266
extension
267267
):
268268
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):

src/scripts/extensions/event.sh

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Function to get event configure options
2+
get_event_configure_opts() {
3+
event_opts=(
4+
--with-event-core
5+
--with-event-extra
6+
--with-event-openssl
7+
--enable-event-sockets
8+
)
9+
if [ "$os" = 'Linux' ]; then
10+
event_opts+=(
11+
--with-openssl-dir=yes
12+
--with-event-libevent-dir=/usr
13+
)
14+
else
15+
event_opts+=(
16+
--with-openssl-dir="$(brew --prefix openssl@1.1)"
17+
--with-event-libevent-dir="$(brew --prefix libevent)"
18+
)
19+
fi
20+
}
21+
22+
# Helper function to compile and install event
23+
add_event_helper() {
24+
local ext=$1
25+
[[ "$ext" =~ ^event$ ]] && ext="event-$(get_pecl_version "event" "stable")"
26+
event_opts=() && get_event_configure_opts
27+
export EVENT_LINUX_LIBS='libevent-dev'
28+
export EVENT_DARWIN_LIBS='libevent'
29+
event_configure_opts="--with-php-config=$(command -v php-config) ${event_opts[*]}"
30+
export EVENT_CONFIGURE_OPTS="$event_configure_opts"
31+
add_extension_from_source event https://pecl.php.net event event "${ext##*-}" extension pecl
32+
}
33+
34+
# Function to add event
35+
add_event() {
36+
local ext=$1
37+
enable_extension "event" "extension"
38+
if check_extension "event"; then
39+
add_log "${tick:?}" "event" "Enabled"
40+
else
41+
if ! [[ "${version:?}" =~ ${old_versions:?} ]] && [ "$os" = "Darwin" ]; then
42+
add_brew_extension event extension >/dev/null 2>&1
43+
else
44+
add_event_helper "$ext" >/dev/null 2>&1
45+
fi
46+
add_extension_log "event" "Installed and enabled"
47+
fi
48+
}
49+
50+
os="$(uname -s)"

0 commit comments

Comments
 (0)