excel-toolkit/run.sh

62 lines
1.6 KiB
Bash
Raw Permalink Normal View History

2026-03-16 13:37:51 +00:00
#!/usr/bin/env bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# 检查 uv
2026-03-16 13:37:51 +00:00
if ! command -v uv &> /dev/null; then
echo "❌ uv not found. Install: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2
2026-03-16 13:37:51 +00:00
exit 1
fi
# 子命令
case "${1:-}" in
sync|install)
echo "📦 Syncing dependencies..."
uv sync
exit $?
;;
add)
shift
echo "📦 Adding package: $@"
uv add "$@"
exit $?
;;
run)
shift
SCRIPT_NAME="$1"
shift
if [ -z "$SCRIPT_NAME" ]; then
echo "Usage: ./run.sh run <script> [args...]"
ls scripts/*.py | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /'
exit 1
fi
uv run python "scripts/${SCRIPT_NAME}.py" "$@"
exit $?
;;
"")
echo "Excel Toolkit - uv managed"
echo ""
echo "Usage:"
echo " ./run.sh sync # Install/sync dependencies"
echo " ./run.sh add <package> # Add a new dependency"
echo " ./run.sh run <script> # Run a script with uv"
echo ""
echo "Scripts:"
ls scripts/*.py 2>/dev/null | xargs -n1 basename | sed 's/\.py$//' | sed 's/^/ /'
exit 0
;;
*)
# 兼容模式:直接当脚本名
SCRIPT_NAME="$1"
shift
SCRIPT_PATH="scripts/${SCRIPT_NAME}.py"
if [ ! -f "$SCRIPT_PATH" ]; then
echo "❌ Script not found: $SCRIPT_PATH" >&2
echo "Try: ./run.sh run <script>"
exit 1
fi
uv run python "$SCRIPT_PATH" "$@"
exit $?
;;
esac