param( [switch]$Preview, [switch]$Execute, [switch]$Strict = $false, [string]$Root = "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry" ) function NowIso { (Get-Date).ToString('s') } if ([string]::IsNullOrWhiteSpace($Root) -or $Root -eq "-Root" -or $Root -like "-*") { $Root = "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry" } $mode = if($Execute){ "EXECUTE" } else { "PREVIEW" } $stage = "C:\Temp_Gouvernance" $wr = "C:\Temp_Gouvernance\wrappers" $runner = if($mode -eq "PREVIEW"){ Join-Path $wr "gov_runner_preview.ps1" } else { Join-Path $wr "gov_runner_execute.ps1" } Write-Host ("== PIPELINE GUARD v1.2.6 :: {0} ==" -f (NowIso)) Write-Host ("Root : {0}" -f $Root) Write-Host ("Stage : {0}" -f $stage) Write-Host ("Mode : {0}" -f $mode) Write-Host ("DoIngest=True AutoFix=True Strict={0}" -f $Strict) function RunStep([string]$name, [string[]]$more){ Write-Host ("-- Step :: {0} :: {1} --" -f $name,(NowIso)) & $runner $name @more } # IMPORTANT : # - Ces 4 scripts ne veulent PAS de -Preview ; ils pr?visualisent par d?faut et n'?crivent qu'avec -Execute. # - Ils acceptent -Root en param nomm?. $onlyRoot = @("-Root", $Root) # 1) BULK INGEST RunStep "kb_bulk_ingest_v1.3.ps1" $onlyRoot Write-Host ("[OK] KB mise a jour : {0}" -f (NowIso)) # 2) ASCII SCRUB RunStep "kb_ascii_scrub_v1.0.ps1" $onlyRoot # 3) EMIT BOOTPACK DUAL RunStep "kb_emit_bootpack_dual_v1.1.ps1" $onlyRoot # 4) ACCEPTANCE RunStep "kb_acceptance_tests_v1.0.ps1" $onlyRoot # 5) QUICKLOG : pas de -Root/-Preview ; il veut juste le chemin en positionnel RunStep "kb_quicklog_and_sync_v1.3.ps1" @($Root) # 6) COMPARE LITE : idem, chemin en positionnel RunStep "kb_compare_lite_v1.1.ps1" @($Root) Write-Host "[OK] Pipeline guard termine."