#!/usr/bin/env bash # Excel Toolkit 统一入口脚本 # 自动使用 uv run 执行,确保虚拟环境隔离 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # 检测 uv 是否可用 if ! command -v uv &> /dev/null; then echo "❌ uv not found. Install with: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2 exit 1 fi # 确保依赖已同步 if [ ! -d ".venv" ]; then echo "📦 Syncing dependencies..." uv sync fi # 执行脚本 SCRIPT_NAME="$1" shift if [ -z "$SCRIPT_NAME" ]; then echo "Usage: ./run.sh [args...]" echo "" echo "Available scripts:" ls scripts/*.py 2>/dev/null | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /' exit 1 fi SCRIPT_PATH="scripts/${SCRIPT_NAME}.py" if [ ! -f "$SCRIPT_PATH" ]; then echo "❌ Script not found: $SCRIPT_PATH" >&2 exit 1 fi echo "🚀 Running: $SCRIPT_PATH $@" uv run python "$SCRIPT_PATH" "$@"