From f144893d6f0df6f508e7a50c3ae9e545d5c815f6 Mon Sep 17 00:00:00 2001 From: Miu <30835281+DreamMiu@users.noreply.github.com> Date: Mon, 20 Nov 2023 00:03:36 +0800 Subject: [PATCH] Fix install env issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复环境缺少或未执行遇到错误而安装失败 通过环境测试 ❌PHP 、❌Composer - 文件夹.zm-runtim已删除 ✅ ⭕PHP 、⭕Composer - 文件夹.zm-runtim已删除 ✅ ⭕PHP 、❌Composer - 文件夹.zm-runtim已删除 ✅ ❌PHP 、⭕Composer - 文件夹.zm-runtim已删除 ✅ --- ext/v3.sh | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/ext/v3.sh b/ext/v3.sh index c2a3e697d..5d9b913cc 100755 --- a/ext/v3.sh +++ b/ext/v3.sh @@ -34,10 +34,18 @@ function download_file() { fi _down_symbol=0 if [ ! -f "$2" ]; then - echo -ne "$(nhead) 正在下载 $1 ... " + # 获取目录路径 + download_dir=$(dirname "$2") + + # 检查目录是否存在,如果不存在则创建 + if [ ! -d "$download_dir" ]; then + mkdir -p "$download_dir" + fi + + echo -ne "$(nhead) 正在下载 $1 到目录 $download_dir ... " $downloader "$1" -$_down_prefix "$2" >/dev/null 2>&1 && echo "完成!" && _down_symbol=1 else - echo "已存在!" && _down_symbol=1 + echo "文件已存在!" && _down_symbol=1 fi if [ $_down_symbol == 0 ]; then echo "$(nhead red) 下载失败!请检查网络连接!" @@ -47,6 +55,7 @@ function download_file() { return 0 } + # 安装下载内建PHP function install_native_php() { ZM_PHP_VERSION="8.1" @@ -68,6 +77,7 @@ function install_native_php() { # 安装下载Composer function install_native_composer() { + if [ ! -f "$ZM_TEMP_DIR/composer.phar" ]; then # 下载 composer.phar download_file "https://mirrors.aliyun.com/composer/composer.phar" "$ZM_TEMP_DIR/composer.phar" || return 1 @@ -209,9 +219,10 @@ function if_use_aliyun() { function if_restore_native_runtime() { ZM_RUNTIME_DIR="$ZM_PWD/$ZM_CUSTOM_DIR/runtime/" + mkdir -p "$ZM_RUNTIME_DIR" + mkdir -p "$ZM_CUSTOM_DIR/runtime" if [ "$php_executable" = "$ZM_TEMP_DIR/php" ]; then echo "$(nhead) 移动内建 PHP 到框架目录 $ZM_RUNTIME_DIR ..." && \ - mkdir -p "$ZM_RUNTIME_DIR" && \ mv "$ZM_TEMP_DIR/php" "$ZM_RUNTIME_DIR" || { echo "$(nhead red) 移动内建 PHP 到框架目录失败!" && return 1 } @@ -219,16 +230,17 @@ function if_restore_native_runtime() { fi if [ "$composer_executable" = "$ZM_TEMP_DIR/composer" ]; then echo "$(nhead) 移动内建 Composer 到框架目录 $ZM_RUNTIME_DIR ..." && \ - mkdir -p "$ZM_CUSTOM_DIR/runtime" && \ - mv "$ZM_TEMP_DIR/composer" "$ZM_RUNTIME_DIR" && \ - mv "$ZM_TEMP_DIR/composer.phar" "$ZM_RUNTIME_DIR" || { + ([ -e "$ZM_TEMP_DIR/composer" ] && mv "$ZM_TEMP_DIR/composer" "$ZM_RUNTIME_DIR") || \ + ([ -e "$ZM_TEMP_DIR/composer.phar" ] && mv "$ZM_TEMP_DIR/composer.phar" "$ZM_RUNTIME_DIR") || { echo "$(nhead red) 移动内建 Composer 到框架目录失败!" && return 1 - } + } composer_executable="$ZM_RUNTIME_DIR/composer" fi return 0 } + + function install_framework() { echo "$(nhead) 开始安装框架到目录 $ZM_CUSTOM_DIR ..." export COMPOSER_ALLOW_SUPERUSER=1 @@ -239,10 +251,10 @@ function install_framework() { echo "$(nhead) 从 Composer 拉取框架 ..." && \ echo '{"minimum-stability":"dev","prefer-stable":true}' > composer.json && $composer_executable require -n zhamao/framework:^3.0 && \ $composer_executable require -n --dev swoole/ide-helper:^4.5 && \ - if_restore_native_runtime && \ - echo "$(nhead) 初始化框架脚手架文件 ..." && \ vendor/bin/zhamao init && \ + echo "$(nhead) 初始化框架脚手架文件 ..." && \ $composer_executable dump-autoload -n && \ + if_restore_native_runtime && \ show_success_msg || { echo "$(nhead red) 安装框架失败!" && cd $ZM_PWD && rm -rf "$ZM_CUSTOM_DIR" && return 1 }