From 337a6bc54f4a4819c0e160389c4c82780b6a8ad1 Mon Sep 17 00:00:00 2001 From: dekun Date: Sun, 12 Jul 2026 12:42:31 +0800 Subject: [PATCH] Show pip progress bars during deploy instead of silent installs. Replace -q with --progress-bar so dependency installation visibly continues in setup_env and update flows. Co-authored-by: Cursor --- deploy/lib/common.sh | 33 +++++++++++++++++++++++++++++++++ deploy/lib/update.sh | 10 +++++----- deploy/setup_env.sh | 12 ++++++------ 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/deploy/lib/common.sh b/deploy/lib/common.sh index 98f17c9..e2d28af 100644 --- a/deploy/lib/common.sh +++ b/deploy/lib/common.sh @@ -184,6 +184,39 @@ install_node_pm2() { log "PM2: $(pm2 -v)" } +# pip 安装时显示进度条(避免 -q 静默导致用户以为卡死) +pip_progress_bar_arg() { + if [[ -t 1 ]] || [[ -t 2 ]]; then + echo "on" + else + echo "ascii" + fi +} + +pip_upgrade_tools() { + local pip_bin="$1" + local bar + bar="$(pip_progress_bar_arg)" + echo " 升级 pip ..." + "${pip_bin}" install -U pip setuptools wheel \ + --disable-pip-version-check \ + --progress-bar "${bar}" +} + +pip_install_requirements() { + local pip_bin="$1" + local req_file="$2" + local label="${3:-依赖}" + local bar + bar="$(pip_progress_bar_arg)" + echo " 安装${label} (下方为 pip 进度) ..." + [[ -f "${req_file}" ]] || die "缺少依赖文件: ${req_file}" + "${pip_bin}" install -r "${req_file}" \ + --disable-pip-version-check \ + --progress-bar "${bar}" + echo " ${label}安装完成" +} + install_backup_cron_all() { step "安装三所每日备份 cron" local dir diff --git a/deploy/lib/update.sh b/deploy/lib/update.sh index 2581310..b2cc378 100644 --- a/deploy/lib/update.sh +++ b/deploy/lib/update.sh @@ -24,18 +24,18 @@ update_quick() { update_deps() { step "依赖更新" - local dir req + local dir for dir in crypto_monitor_binance crypto_monitor_gate crypto_monitor_okx; do local proj="${REPO_ROOT}/${dir}" if [[ -x "${proj}/.venv/bin/pip" ]]; then - log "pip install ${dir}" - "${proj}/.venv/bin/pip" install -r "${REPO_ROOT}/requirements.txt" -q + step "${dir}" + pip_install_requirements "${proj}/.venv/bin/pip" "${REPO_ROOT}/requirements.txt" "交易所共用依赖" fi done local hub="${REPO_ROOT}/manual_trading_hub" if [[ -x "${hub}/.venv/bin/pip" && -f "${hub}/requirements.txt" ]]; then - log "pip install manual_trading_hub" - "${hub}/.venv/bin/pip" install -r "${hub}/requirements.txt" -q + step "manual_trading_hub" + pip_install_requirements "${hub}/.venv/bin/pip" "${hub}/requirements.txt" "中控依赖" fi update_quick } diff --git a/deploy/setup_env.sh b/deploy/setup_env.sh index f8aa636..2dfc58d 100644 --- a/deploy/setup_env.sh +++ b/deploy/setup_env.sh @@ -19,6 +19,8 @@ DEPLOY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${DEPLOY_DIR}/.." && pwd)" REQ_FILE="${REPO_ROOT}/requirements.txt" HUB_REQ="${REPO_ROOT}/manual_trading_hub/requirements.txt" +# shellcheck source=lib/common.sh +source "${DEPLOY_DIR}/lib/common.sh" ONLY="all" SKIP_PM2=0 @@ -177,10 +179,8 @@ setup_monitor() { step "${dir_name}" cd "${proj}" create_project_venv "${PY}" - echo " 升级 pip ..." - .venv/bin/python -m pip install -U pip setuptools wheel -q - echo " 安装依赖 ..." - .venv/bin/pip install -r "${REQ_FILE}" -q + pip_upgrade_tools ".venv/bin/pip" + pip_install_requirements ".venv/bin/pip" "${REQ_FILE}" "交易所共用依赖" if [[ "${SKIP_ENV_COPY}" -eq 0 ]]; then if [[ -f .env.example && ! -f .env ]]; then cp -n .env.example .env 2>/dev/null || cp .env.example .env @@ -204,9 +204,9 @@ setup_hub() { step "manual_trading_hub" cd "${proj}" create_project_venv "${PY}" - .venv/bin/python -m pip install -U pip setuptools wheel -q + pip_upgrade_tools ".venv/bin/pip" if [[ -f "${HUB_REQ}" ]]; then - .venv/bin/pip install -r "${HUB_REQ}" -q + pip_install_requirements ".venv/bin/pip" "${HUB_REQ}" "中控依赖" fi if [[ "${SKIP_ENV_COPY}" -eq 0 && -f .env.example && ! -f .env ]]; then cp -n .env.example .env 2>/dev/null || cp .env.example .env