From 17217317eaaf57dd5c39538c115e35ddccb8666d Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 25 May 2026 22:01:06 +0800 Subject: Restructure docs add template and interactive tutorial, update tool runner --- run-tools.sh | 59 +++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 20 deletions(-) (limited to 'run-tools.sh') diff --git a/run-tools.sh b/run-tools.sh index 7a1062a..c80f9db 100755 --- a/run-tools.sh +++ b/run-tools.sh @@ -2,31 +2,50 @@ cd "$(dirname "$0")" || exit 1 +# 收集所有可用工具名称 +tools=() + +if [ -d "dev_tools/scripts" ]; then + for file in dev_tools/scripts/*.sh; do + if [ -f "$file" ]; then + tools+=("$(basename "$file" .sh)") + fi + done + for file in dev_tools/scripts/*.py; do + if [ -f "$file" ]; then + tools+=("$(basename "$file" .py)") + fi + done +fi +if [ -d "dev_tools/src/bin" ]; then + for file in dev_tools/src/bin/*.rs; do + if [ -f "$file" ]; then + tools+=("$(basename "$file" .rs)") + fi + done +fi + if [ $# -eq 0 ]; then echo "Available:" - if [ -d "dev_tools/scripts" ]; then - for file in dev_tools/scripts/*.sh; do - if [ -f "$file" ]; then - basename "$file" .sh - fi - done - for file in dev_tools/scripts/*.py; do - if [ -f "$file" ]; then - basename "$file" .py - fi - done - fi - if [ -d "dev_tools/src/bin" ]; then - for file in dev_tools/src/bin/*.rs; do - if [ -f "$file" ]; then - basename "$file" .rs - fi - done - fi + for i in "${!tools[@]}"; do + printf " [%2d] %s\n" $((i + 1)) "${tools[$i]}" + done exit 1 fi target_bin="$1" + +# 检查是否输入的是数字 +if [[ "$target_bin" =~ ^[0-9]+$ ]]; then + idx=$((target_bin - 1)) + if [ "$idx" -ge 0 ] && [ "$idx" -lt "${#tools[@]}" ]; then + target_bin="${tools[$idx]}" + else + echo "Error: invalid number '$target_bin', valid range is 1-${#tools[@]}" + exit 1 + fi +fi + target_script="dev_tools/scripts/${target_bin}.sh" target_python="dev_tools/scripts/${target_bin}.py" target_file="dev_tools/src/bin/${target_bin}.rs" @@ -37,7 +56,7 @@ if [ -f "$target_script" ]; then elif [ -f "$target_python" ]; then python "$target_python" elif [ -f "$target_file" ]; then - cargo run --manifest-path dev_tools/Cargo.toml --bin "$1" --quiet + cargo run --manifest-path dev_tools/Cargo.toml --bin "$target_bin" --quiet else echo "Error: target '$target_bin' does not exist" exit 1 -- cgit