2023-08-22 11:13:51 +02:00
|
|
|
#!/usr/bin/env sh
|
2023-04-22 17:18:21 +08:00
|
|
|
|
|
|
|
|
# set error-quit, verbose, non-variable-quit
|
|
|
|
|
set -eu
|
|
|
|
|
# see what system used
|
|
|
|
|
__OS__=$(uname -s)
|
|
|
|
|
# see what arch used
|
|
|
|
|
__ARCH__=$(uname -m)
|
|
|
|
|
# format arch name
|
|
|
|
|
case $__ARCH__ in
|
2023-04-30 21:35:25 +08:00
|
|
|
arm64 | aarch64) __ARCH__=aarch64 ;;
|
|
|
|
|
x86_64|x64) __ARCH__=x86_64 ;;
|
2023-04-22 17:18:21 +08:00
|
|
|
*) ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
# format uname
|
|
|
|
|
case $__OS__ in
|
|
|
|
|
Darwin) __OS_FIXED__=macos ;;
|
|
|
|
|
Linux) __OS_FIXED__=linux ;;
|
|
|
|
|
*) echo "Current OS is not supported" && exit 1 ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
# set project dir
|
|
|
|
|
__DIR__=$(cd "$(dirname "$0")" && pwd)
|
2023-08-20 19:51:45 +08:00
|
|
|
__PROJECT__=$(cd "${__DIR__}"/../ && pwd)
|
2023-04-22 17:18:21 +08:00
|
|
|
|
|
|
|
|
# set download dir
|
2023-09-26 22:27:44 +08:00
|
|
|
__PHP_RUNTIME_URL__="https://dl.static-php.dev/static-php-cli/common/php-8.2.10-cli-${__OS_FIXED__}-${__ARCH__}.tar.gz"
|
2023-04-22 17:18:21 +08:00
|
|
|
__COMPOSER_URL__="https://getcomposer.org/download/latest-stable/composer.phar"
|
|
|
|
|
|
2023-04-25 15:17:16 +08:00
|
|
|
# use china mirror
|
|
|
|
|
# bash bin/setup-runtime --mirror china
|
|
|
|
|
mirror=''
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
--mirror)
|
|
|
|
|
mirror="$2"
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
|
--*)
|
|
|
|
|
echo "Illegal option $1"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
shift $(($# > 0 ? 1 : 0))
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
case "$mirror" in
|
|
|
|
|
china)
|
2023-09-26 22:27:44 +08:00
|
|
|
__PHP_RUNTIME_URL__="https://dl.static-php.dev/static-php-cli/common/php-8.2.10-cli-${__OS_FIXED__}-${__ARCH__}.tar.gz"
|
2023-04-25 15:17:16 +08:00
|
|
|
__COMPOSER_URL__="https://mirrors.aliyun.com/composer/composer.phar"
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
2023-08-25 16:11:28 +02:00
|
|
|
if ! command -v curl > /dev/null && command -v apk > /dev/null; then
|
2023-08-22 14:26:53 +02:00
|
|
|
apk add --no-cache curl
|
|
|
|
|
fi
|
2023-08-22 11:13:51 +02:00
|
|
|
|
2023-08-20 19:51:45 +08:00
|
|
|
test -d "${__PROJECT__}"/downloads || mkdir "${__PROJECT__}"/downloads
|
2023-04-22 17:18:21 +08:00
|
|
|
# download static php binary
|
2023-08-20 19:51:45 +08:00
|
|
|
test -f "${__PROJECT__}"/downloads/runtime.tar.gz || { echo "Downloading $__PHP_RUNTIME_URL__ ..." && curl -#fSL -o "${__PROJECT__}"/downloads/runtime.tar.gz "$__PHP_RUNTIME_URL__" ; }
|
|
|
|
|
test -f "${__DIR__}"/php || { tar -xf "${__PROJECT__}"/downloads/runtime.tar.gz -C "${__DIR__}"/ ; }
|
|
|
|
|
chmod +x "${__DIR__}"/php
|
2023-04-22 17:18:21 +08:00
|
|
|
# download composer
|
2023-08-20 19:51:45 +08:00
|
|
|
test -f "${__DIR__}"/composer || curl -#fSL -o "${__DIR__}"/composer "$__COMPOSER_URL__"
|
|
|
|
|
chmod +x "${__DIR__}"/composer
|
2023-04-22 17:18:21 +08:00
|
|
|
# sanity check for php and composer
|
2023-08-20 19:51:45 +08:00
|
|
|
"${__DIR__}"/php -v >/dev/null || { echo "Failed to run php" && exit 1; }
|
|
|
|
|
"${__DIR__}"/php "${__DIR__}"/composer --version >/dev/null || { echo "Failed to run composer" && exit 1; }
|
2023-04-22 17:18:21 +08:00
|
|
|
|
|
|
|
|
echo "Setup runtime OK!"
|
|
|
|
|
echo "runtime bin path needs to add manually by command below:"
|
|
|
|
|
echo ""
|
|
|
|
|
echo " export PATH=\"${__DIR__}:\$PATH\""
|
|
|
|
|
echo ""
|