# install_latest_aliases_v1.3.ps1 - CMD-only aliases; ajoute write_devlock_debugkit_rule param([switch]$Install) function Ensure-Dir([string]$p){ if($p -and !(Test-Path $p)){ New-Item -ItemType Directory -Force -Path $p|Out-Null } } $registry = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Definition) $bin = Join-Path $registry 'bin' $scripts = Join-Path $registry 'scripts' Ensure-Dir $bin # Nettoyage .ps1 alias Get-ChildItem -LiteralPath $bin -Filter '*_latest.ps1' -File -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue function New-LatestCmd([string]$alias,[string]$pattern){ $cmd1 = Join-Path $bin ($alias+'_latest.cmd') $cmd2 = Join-Path $scripts ($alias+'_latest.cmd') $tpl = '@echo off setlocal set "REG={REG}" set "DIR=%REG%\scripts" set "PATTERN={PAT}" powershell -NoProfile -ExecutionPolicy Bypass -Command "$dir=$env:DIR; $pat=$env:PATTERN; function gv([string]$n){$m=[regex]::Match($n,''_v([0-9]+(?:\.[0-9]+)*)$''); if($m.Success){[version]$m.Groups[1].Value}else{[version]''0.0''}}; $best=Get-ChildItem -LiteralPath $dir -Filter $pat -File | Sort-Object @{Expression={gv $_.BaseName};Descending=$true}, @{Expression={$_.LastWriteTime};Descending=$true} | Select-Object -First 1 -Expand FullName; if(-not $best){Write-Host ''[ERR] Aucun script ne correspond a '' $pat '' dans '' $dir; exit 1}; & $best @args" %*' $txt = $tpl.Replace('{REG}',$registry).Replace('{PAT}',$pattern) [IO.File]::WriteAllText($cmd1,$txt,[Text.ASCIIEncoding]::new()) [IO.File]::WriteAllText($cmd2,$txt,[Text.ASCIIEncoding]::new()) "Alias CMD -> "+(Split-Path $cmd1 -Leaf)+" (pattern: "+$pattern+")" } $map = @( @{Alias='gov_profile_launcher'; Pattern='gov_profile_launcher_v*.ps1'} @{Alias='gov_dev_coach'; Pattern='gov_dev_coach_v*.ps1'} @{Alias='apply_kb_guard_asserts'; Pattern='apply_kb_guard_asserts_v*.ps1'} @{Alias='kb_guard_validator'; Pattern='kb_guard_validator_v*.ps1'} @{Alias='export_ingest_pack'; Pattern='export_ingest_pack_v*.ps1'} @{Alias='fix_manifest_sha'; Pattern='fix_manifest_sha_v*.ps1'} @{Alias='rebuild_bootpack_full_hub'; Pattern='rebuild_bootpack_full_hub_v*.ps1'} @{Alias='rebuild_bootpack_full_seedbox'; Pattern='rebuild_bootpack_full_seedbox_v*.ps1'} @{Alias='write_devlock_debugkit_rule'; Pattern='write_devlock_debugkit_rule_v*.ps1'} ) foreach($m in $map){ New-LatestCmd -alias $m.Alias -pattern $m.Pattern | Write-Host } $(if("OK - alias .cmd install){ s/MAJ dans } else { $bin ET wrappers dans: $scripts" })