From 1eb45c9c4afc631cfc97dd78ada1ab797627dec4 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 2 Jul 2026 14:57:31 +0800 Subject: feat: add support for running binary executables Add detection and execution of standalone binary files (without extensions in shell, with .exe in PowerShell) to the tool runner --- run.ps1 | 10 ++++++++++ run.sh | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/run.ps1 b/run.ps1 index 7364183..bfea866 100644 --- a/run.ps1 +++ b/run.ps1 @@ -26,6 +26,12 @@ if (Test-Path ".run/src/bin/*.ps1") { } } +if (Test-Path ".run/src/bin/*.exe") { + Get-ChildItem -Path ".run/src/bin/*.exe" | ForEach-Object { + $tools[$_.BaseName] = @{ Type = "exe"; Path = $_.FullName } + } +} + if ($args.Count -eq 0) { $sorted = $tools.Keys | Sort-Object $total = $sorted.Count @@ -53,6 +59,7 @@ if ($args.Count -eq 0) { "py" { "Python" } "rs" { "Rust" } "ps1" { "PowerShell" } + "exe" { "Binary" } } $entry = " " + $i.ToString().PadRight($num_w) + ") " + $name.PadRight($max_name) + " [$lang]" Write-Host ("│" + $entry.PadRight($inner_w) + "│") @@ -89,6 +96,9 @@ switch ($info.Type) { "ps1" { & $info.Path @script_args } + "exe" { + & $info.Path $script_args + } "py" { python $info.Path $script_args } diff --git a/run.sh b/run.sh index 62e08ac..1d58ffa 100644 --- a/run.sh +++ b/run.sh @@ -32,6 +32,15 @@ for file in .run/src/bin/*.sh; do fi done +for file in .run/src/bin/*; do + if [ -f "$file" ]; then + name=$(basename "$file") + if [[ ! "$name" == *.* ]]; then + tools["$name"]="binary" + fi + fi +done + if [ $# -eq 0 ]; then sorted_names=($(echo "${!tools[@]}" | tr ' ' '\n' | sort)) total=${#sorted_names[@]} @@ -63,6 +72,7 @@ if [ $# -eq 0 ]; then py) lang="Python";; rs) lang="Rust";; sh) lang="Shell";; + binary) lang="Binary";; esac entry=$(printf " %-*d) %-*s [%s]" $num_w $i $max_name $name $lang) printf "│%-*s│\n" $inner_w "$entry" @@ -145,4 +155,8 @@ CSPROJ cp ".run/src/bin/$target_name.cs" "$temp_dir/Program.cs" dotnet run --project "$temp_dir/$target_name.csproj" -- "$@" ;; + binary) + chmod +x ".run/src/bin/$target_name" + ".run/src/bin/$target_name" "$@" + ;; esac -- cgit