mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-22 20:01:06 +07:00
Use EXTENSION_PATH to specify subdirectory in add_extension_from_source
This commit is contained in:
parent
909090903e
commit
fe944a16b5
@ -154,7 +154,7 @@ describe('Extension tests', () => {
|
|||||||
'linux'
|
'linux'
|
||||||
);
|
);
|
||||||
expect(linux).toContain(
|
expect(linux).toContain(
|
||||||
'add_extension_from_source mongodb https://github.com mongodb mongo-php-driver . master extension'
|
'add_extension_from_source mongodb https://github.com mongodb mongo-php-driver master extension'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ describe('Extension tests', () => {
|
|||||||
'darwin'
|
'darwin'
|
||||||
);
|
);
|
||||||
expect(darwin).toContain(
|
expect(darwin).toContain(
|
||||||
'add_extension_from_source mongodb https://github.com mongodb mongo-php-driver . master extension'
|
'add_extension_from_source mongodb https://github.com mongodb mongo-php-driver master extension'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -267,7 +267,7 @@ describe('Utils tests', () => {
|
|||||||
'extension'
|
'extension'
|
||||||
)
|
)
|
||||||
).toContain(
|
).toContain(
|
||||||
'\nadd_extension_from_source ext https://github.com org-name repo-name . release extension'
|
'\nadd_extension_from_source ext https://github.com org-name repo-name release extension'
|
||||||
);
|
);
|
||||||
expect(
|
expect(
|
||||||
await utils.parseExtensionSource(
|
await utils.parseExtensionSource(
|
||||||
@ -275,15 +275,15 @@ describe('Utils tests', () => {
|
|||||||
'extension'
|
'extension'
|
||||||
)
|
)
|
||||||
).toContain(
|
).toContain(
|
||||||
'\nadd_extension_from_source ext https://sub.domain.tld org repo . release extension'
|
'\nadd_extension_from_source ext https://sub.domain.tld org repo release extension'
|
||||||
);
|
);
|
||||||
expect(
|
expect(
|
||||||
await utils.parseExtensionSource(
|
await utils.parseExtensionSource(
|
||||||
'ext-https://sub.domain.XN--tld/org/repo/sub/dir@release',
|
'ext-https://sub.domain.XN--tld/org/repo@release',
|
||||||
'extension'
|
'extension'
|
||||||
)
|
)
|
||||||
).toContain(
|
).toContain(
|
||||||
'\nadd_extension_from_source ext https://sub.domain.XN--tld org repo sub/dir release extension'
|
'\nadd_extension_from_source ext https://sub.domain.XN--tld org repo release extension'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
9
dist/index.js
vendored
9
dist/index.js
vendored
@ -2978,13 +2978,10 @@ exports.customPackage = customPackage;
|
|||||||
* @param extension
|
* @param extension
|
||||||
*/
|
*/
|
||||||
async function parseExtensionSource(extension, prefix) {
|
async function parseExtensionSource(extension, prefix) {
|
||||||
var _a, _b;
|
// Groups: extension, domain url, org, repo, release
|
||||||
// Groups: extension, domain url, org, repo, subdirectory, release
|
const regex = /(\w+)-(.+:\/\/.+(?:[.:].+)+(?:\/))?([\w.-]+)\/([\w.-]+)@(.+)/;
|
||||||
// https://regex101.com/r/P3rJiy/1
|
|
||||||
const regex = /(\w+)-(.+:\/\/.+(?:[.:][^/]+)+)?(?:\/)?([^/]+)\/([^/]+)(?:\/)?(.+)*@(.+)/;
|
|
||||||
const matches = regex.exec(extension);
|
const matches = regex.exec(extension);
|
||||||
matches[2] = (_a = matches[2]) !== null && _a !== void 0 ? _a : 'https://github.com';
|
matches[2] = matches[2] ? matches[2].slice(0, -1) : 'https://github.com';
|
||||||
matches[5] = (_b = matches[5]) !== null && _b !== void 0 ? _b : '.';
|
|
||||||
return await joins('\nadd_extension_from_source', ...matches.splice(1, matches.length), prefix);
|
return await joins('\nadd_extension_from_source', ...matches.splice(1, matches.length), prefix);
|
||||||
}
|
}
|
||||||
exports.parseExtensionSource = parseExtensionSource;
|
exports.parseExtensionSource = parseExtensionSource;
|
||||||
|
@ -43,7 +43,7 @@ add_cubrid_helper() {
|
|||||||
patch_phpize
|
patch_phpize
|
||||||
read -r "${ext}_PREFIX_CONFIGURE_OPTS" <<< "CFLAGS=-Wno-implicit-function-declaration"
|
read -r "${ext}_PREFIX_CONFIGURE_OPTS" <<< "CFLAGS=-Wno-implicit-function-declaration"
|
||||||
read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config)"
|
read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config)"
|
||||||
add_extension_from_source "$ext" https://github.com CUBRID "$cubrid_repo" . "$cubrid_branch" extension
|
add_extension_from_source "$ext" https://github.com CUBRID "$cubrid_repo" "$cubrid_branch" extension
|
||||||
restore_phpize
|
restore_phpize
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,8 @@ add_firebird_helper() {
|
|||||||
tag="$(php_src_tag)"
|
tag="$(php_src_tag)"
|
||||||
export PDO_FIREBIRD_CONFIGURE_OPTS="--with-pdo-firebird=$firebird_dir"
|
export PDO_FIREBIRD_CONFIGURE_OPTS="--with-pdo-firebird=$firebird_dir"
|
||||||
export PDO_FIREBIRD_LINUX_LIBS="firebird-dev"
|
export PDO_FIREBIRD_LINUX_LIBS="firebird-dev"
|
||||||
add_extension_from_source pdo_firebird https://github.com php php-src ext/pdo_firebird "$tag" extension get
|
export PDO_FIREBIRD_PATH="ext/pdo_firebird"
|
||||||
|
add_extension_from_source pdo_firebird https://github.com php php-src "$tag" extension get
|
||||||
}
|
}
|
||||||
|
|
||||||
add_firebird() {
|
add_firebird() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
add_geos_helper() {
|
add_geos_helper() {
|
||||||
export GEOS_LINUX_LIBS='libgeos-dev'
|
export GEOS_LINUX_LIBS='libgeos-dev'
|
||||||
export GEOS_DARWIN_LIBS='geos'
|
export GEOS_DARWIN_LIBS='geos'
|
||||||
add_extension_from_source geos https://github.com libgeos php-geos . 1.0.0 extension get
|
add_extension_from_source geos https://github.com libgeos php-geos 1.0.0 extension get
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to add geos
|
# Function to add geos
|
||||||
|
@ -68,9 +68,9 @@ add_http_helper() {
|
|||||||
export HTTP_LINUX_LIBS="zlib1g libbrotli-dev libcurl4-openssl-dev libevent-dev libicu-dev libidn2-dev"
|
export HTTP_LINUX_LIBS="zlib1g libbrotli-dev libcurl4-openssl-dev libevent-dev libicu-dev libidn2-dev"
|
||||||
export HTTP_DARWIN_LIBS="brotli curl icu4c libevent libidn2"
|
export HTTP_DARWIN_LIBS="brotli curl icu4c libevent libidn2"
|
||||||
if [[ "${version:?}" =~ ${nightly_versions:?} ]]; then
|
if [[ "${version:?}" =~ ${nightly_versions:?} ]]; then
|
||||||
add_extension_from_source http https://github.com m6w6 ext-http . master extension
|
add_extension_from_source http https://github.com m6w6 ext-http master extension
|
||||||
else
|
else
|
||||||
add_extension_from_source pecl_http https://pecl.php.net http http . "${ext##*-}" extension pecl
|
add_extension_from_source pecl_http https://pecl.php.net http http "${ext##*-}" extension pecl
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,8 +37,9 @@ add_oci_helper() {
|
|||||||
status='Installed and enabled'
|
status='Installed and enabled'
|
||||||
read -r "${ext}_LINUX_LIBS" <<< "libaio-dev"
|
read -r "${ext}_LINUX_LIBS" <<< "libaio-dev"
|
||||||
read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config) --with-${ext/_/-}=instantclient,$oracle_client"
|
read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config) --with-${ext/_/-}=instantclient,$oracle_client"
|
||||||
|
read -r "${ext}_PATH" <<< "ext/$ext"
|
||||||
patch_phpize
|
patch_phpize
|
||||||
add_extension_from_source "$ext" https://github.com php php-src ext/"$ext" "$(php_src_tag)" extension get
|
add_extension_from_source "$ext" https://github.com php php-src "$(php_src_tag)" extension get
|
||||||
restore_phpize
|
restore_phpize
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ parse_args() {
|
|||||||
up_ext_name=$(echo "$extension" | tr '[:lower:]' '[:upper:]')
|
up_ext_name=$(echo "$extension" | tr '[:lower:]' '[:upper:]')
|
||||||
var="${extension}_${suffix}"
|
var="${extension}_${suffix}"
|
||||||
up_var="${up_ext_name}_${suffix}"
|
up_var="${up_ext_name}_${suffix}"
|
||||||
! [[ "$suffix" =~ .*PREFIX|LIBS.* ]] && hyp='-'
|
! [[ "$suffix" =~ .*PREFIX|LIBS|PATH.* ]] && hyp='-'
|
||||||
output=$(echo "${!var} ${!up_var}" | sed "s/, *$hyp/ $hyp/g" | sed -E "s/^,|,$//g")
|
output=$(echo "${!var} ${!up_var}" | sed "s/, *$hyp/ $hyp/g" | sed -E "s/^,|,$//g")
|
||||||
echo "$output" | xargs -n 1 | sort | uniq | xargs
|
echo "$output" | xargs -n 1 | sort | uniq | xargs
|
||||||
}
|
}
|
||||||
@ -114,16 +114,16 @@ add_extension_from_source() {
|
|||||||
url=$2
|
url=$2
|
||||||
org=$3
|
org=$3
|
||||||
repo=$4
|
repo=$4
|
||||||
sub_dir=$5
|
release=$5
|
||||||
release=$6
|
prefix=$6
|
||||||
prefix=$7
|
fetch=${7:-clone}
|
||||||
fetch=${8:-clone}
|
|
||||||
slug="$extension-$release"
|
slug="$extension-$release"
|
||||||
source="$url/$org/$repo"
|
source="$url/$org/$repo"
|
||||||
libraries="$(parse_args "$extension" LIBS) $(parse_args "$extension" "$(uname -s)"_LIBS)"
|
libraries="$(parse_args "$extension" LIBS) $(parse_args "$extension" "$(uname -s)"_LIBS)"
|
||||||
opts="$(parse_args "$extension" CONFIGURE_OPTS)"
|
opts="$(parse_args "$extension" CONFIGURE_OPTS)"
|
||||||
prefix_opts="$(parse_args "$extension" CONFIGURE_PREFIX_OPTS)"
|
prefix_opts="$(parse_args "$extension" CONFIGURE_PREFIX_OPTS)"
|
||||||
suffix_opts="$(parse_args "$extension" CONFIGURE_SUFFIX_OPTS)"
|
suffix_opts="$(parse_args "$extension" CONFIGURE_SUFFIX_OPTS)"
|
||||||
|
sub_dir="$(parse_args "$extension" PATH)"
|
||||||
step_log "Setup $slug"
|
step_log "Setup $slug"
|
||||||
(
|
(
|
||||||
add_devtools phpize >/dev/null 2>&1
|
add_devtools phpize >/dev/null 2>&1
|
||||||
|
@ -448,12 +448,10 @@ export async function parseExtensionSource(
|
|||||||
extension: string,
|
extension: string,
|
||||||
prefix: string
|
prefix: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
// Groups: extension, domain url, org, repo, subdirectory, release
|
// Groups: extension, domain url, org, repo, release
|
||||||
// https://regex101.com/r/P3rJiy/1
|
const regex = /(\w+)-(.+:\/\/.+(?:[.:].+)+(?:\/))?([\w.-]+)\/([\w.-]+)@(.+)/;
|
||||||
const regex = /(\w+)-(.+:\/\/.+(?:[.:][^/]+)+)?(?:\/)?([^/]+)\/([^/]+)(?:\/)?(.+)*@(.+)/;
|
|
||||||
const matches = regex.exec(extension) as RegExpExecArray;
|
const matches = regex.exec(extension) as RegExpExecArray;
|
||||||
matches[2] = matches[2] ?? 'https://github.com';
|
matches[2] = matches[2] ? matches[2].slice(0, -1) : 'https://github.com';
|
||||||
matches[5] = matches[5] ?? '.';
|
|
||||||
return await joins(
|
return await joins(
|
||||||
'\nadd_extension_from_source',
|
'\nadd_extension_from_source',
|
||||||
...matches.splice(1, matches.length),
|
...matches.splice(1, matches.length),
|
||||||
|
Loading…
Reference in New Issue
Block a user