diff options
| -rw-r--r-- | run.ps1 | 20 | ||||
| -rwxr-xr-x | run.sh | 20 |
2 files changed, 34 insertions, 6 deletions
@@ -96,7 +96,8 @@ if ($args.Count -eq 0) { "nim" { "Nim" } "exe" { "Binary" } } - $entry = " " + $i.ToString().PadRight($num_w) + ") " + $name.PadRight($max_name) + " [$lang]" + $displayName = $name -replace '[_\-]', ' ' + $entry = " " + $i.ToString().PadRight($num_w) + ") " + $displayName.PadRight($max_name) + " [$lang]" Write-Host ("ā" + $entry.PadRight($inner_w) + "ā") $i++ } @@ -120,8 +121,21 @@ if ($target_name -match '^\d+$') { } if (-not $tools.ContainsKey($target_name)) { - Write-Host "Error: target '$target_name' does not exist" - exit 1 + $normalized = $target_name.ToLower() -replace '[ _\-\.]', '' + $found = $null + foreach ($key in $tools.Keys) { + $keyNormalized = $key.ToLower() -replace '[ _\-\.]', '' + if ($normalized -eq $keyNormalized) { + $found = $key + break + } + } + if ($found) { + $target_name = $found + } else { + Write-Host "Error: target '$target_name' does not exist" + exit 1 + } } $script_args = $args[1..$args.Count] @@ -114,7 +114,8 @@ if [ $# -eq 0 ]; then nim) lang="Nim";; binary) lang="Binary";; esac - entry=$(printf " %-*d) %-*s [%s]" $num_w $i $max_name $name $lang) + display_name=$(echo "$name" | tr '_-' ' ') + entry=$(printf " %-*d) %-*s [%s]" $num_w $i $max_name "$display_name" $lang) printf "ā%-*sā\n" $inner_w "$entry" i=$((i + 1)) done @@ -139,8 +140,21 @@ if [[ "$target_name" =~ ^[0-9]+$ ]]; then fi if [ -z "${tools[$target_name]}" ]; then - echo "Error: target '$target_name' does not exist" - exit 1 + normalized_user=$(echo "$target_name" | tr '[:upper:]' '[:lower:]' | sed 's/[_. -]//g') + found="" + for existing_name in "${!tools[@]}"; do + normalized_existing=$(echo "$existing_name" | tr '[:upper:]' '[:lower:]' | sed 's/[_. -]//g') + if [ "$normalized_user" = "$normalized_existing" ]; then + found="$existing_name" + break + fi + done + if [ -n "$found" ]; then + target_name="$found" + else + echo "Error: target '$target_name' does not exist" + exit 1 + fi fi type="${tools[$target_name]}" |
