update home use again

This commit is contained in:
2025-09-16 22:11:55 -06:00
parent 165c55a021
commit 5d5756a6d4
7 changed files with 618 additions and 263 deletions

View File

@@ -17,11 +17,6 @@ function Get-YoungestTimestamp {
return $young
}
<<<<<<< HEAD
<<<<<<< HEAD
=======
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
function Sync-SequenceFilenames {
param(
[Parameter(Mandatory)] [string]$SequenceFolderPath,
@@ -86,10 +81,6 @@ function Sync-SequenceFilenames {
}
}
<<<<<<< HEAD
>>>>>>> main
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
try {
$root = (Get-Location).ProviderPath
$currentDir = Join-Path $root '_CURRENT'
@@ -97,50 +88,26 @@ try {
New-Item -ItemType Directory -Path $currentDir -Force | Out-Null
}
<<<<<<< HEAD
<<<<<<< HEAD
$logFile = Join-Path $currentDir '_UpdateSequences.log'
=======
$logFile = Join-Path $currentDir '_UpdateSequences.log'
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] === UpdateSequences (ps1) started in '$root' ===" | Add-Content -LiteralPath $logFile
# Scan for folders with YYYY-MM-DD format (e.g., 2023-12-15) instead of daily_*
$dailyDirs = Get-ChildItem -LiteralPath $root -Directory -Filter '????-??-??' | Where-Object { $_.Name -ne '_archive' }
$mapDaily = @{}
$dailiesScanned = 0
<<<<<<< HEAD
=======
$logFile = Join-Path $currentDir '_UpdateSequences.log'
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] === UpdateSequences (ps1) started in '$root' ===" | Add-Content -LiteralPath $logFile
$dailyDirs = Get-ChildItem -LiteralPath $root -Directory -Filter 'daily_*' | Where-Object { $_.Name -ne '_archive' }
$mapDaily = @{}
$dailiesScanned = 0
$filesRenamedTotal = 0
$renameCollisions = 0
$renameErrors = 0
>>>>>>> main
=======
$filesRenamedTotal = 0
$renameCollisions = 0
$renameErrors = 0
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
foreach ($d in $dailyDirs) {
$dailiesScanned++
$seqDirs = @(Get-ChildItem -LiteralPath $d.FullName -Directory | Where-Object { $_.Name -ne '_archive' })
if ($seqDirs.Count -eq 0) { $seqDirs = @($d) }
foreach ($s in $seqDirs) {
if (-not (Test-Path -LiteralPath $s.FullName)) { continue }
<<<<<<< HEAD
<<<<<<< HEAD
=======
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
$renameResult = Sync-SequenceFilenames -SequenceFolderPath $s.FullName -SequenceName $s.Name -LogFile $logFile
if ($DebugMode -or $renameResult.Renamed -gt 0 -or $renameResult.Collisions -gt 0 -or $renameResult.Errors -gt 0) {
Write-Host "[RENAME]|$($s.FullName)|$($s.Name)|checked=$($renameResult.Checked)|renamed=$($renameResult.Renamed)|collisions=$($renameResult.Collisions)|errors=$($renameResult.Errors)" -ForegroundColor Cyan
@@ -148,10 +115,7 @@ try {
$filesRenamedTotal += $renameResult.Renamed
$renameCollisions += $renameResult.Collisions
$renameErrors += $renameResult.Errors
<<<<<<< HEAD
>>>>>>> main
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
$young = Get-YoungestTimestamp -FolderPath $s.FullName
$filesCount = @(Get-ChildItem -LiteralPath $s.FullName -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.FullName -notlike '*\_archive\*' }).Count
$seqName = $s.Name
@@ -191,8 +155,7 @@ try {
$lines += "[SKIP]|$($d.SrcFull)|$($d.Seq)|reason=notNewer|srcYoung=$($d.Young.ToString('s'))|curYoung=$($curYoung.ToString('s'))"
}
}
<<<<<<< HEAD
<<<<<<< HEAD
$lines += "[META]|dailiesScanned=$dailiesScanned|sequencesTotal=$total|toCopy=$toCopy"
# Print plan to console instead of writing to file
@@ -207,29 +170,6 @@ try {
}
}
Write-Host "==================" -ForegroundColor Cyan
=======
$lines += "[META]|dailiesScanned=$dailiesScanned|sequencesTotal=$total|toCopy=$toCopy"
=======
$lines += "[META]|dailiesScanned=$dailiesScanned|sequencesTotal=$total|toCopy=$toCopy"
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
# Print plan to console instead of writing to file
Write-Host "=== UPDATE PLAN ===" -ForegroundColor Cyan
foreach ($line in $lines) {
if ($line -like '[COPY]*') {
Write-Host $line -ForegroundColor Green
} elseif ($line -like '[SKIP]*') {
Write-Host $line -ForegroundColor Yellow
} else {
Write-Host $line -ForegroundColor White
}
}
Write-Host "==================" -ForegroundColor Cyan
<<<<<<< HEAD
>>>>>>> main
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
$sequencesMirrored = 0
$mirrorFailures = 0
@@ -239,12 +179,7 @@ try {
$srcFull = $parts[1]
$seqName = $parts[2]
$dstAbs = Join-Path $currentDir $seqName
<<<<<<< HEAD
if (-not (Test-Path -LiteralPath $dstAbs)) { New-Item -ItemType Directory -Path $dstAbs -Force | Out-Null }
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] Mirror: '$srcFull' -> '$dstAbs'" | Add-Content -LiteralPath $logFile
<<<<<<< HEAD
$args = @(
=======
if (Test-Path -LiteralPath $dstAbs) {
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] WIPE: removing existing destination '$dstAbs'" | Add-Content -LiteralPath $logFile
try {
@@ -257,23 +192,11 @@ try {
if (-not (Test-Path -LiteralPath $dstAbs)) { New-Item -ItemType Directory -Path $dstAbs -Force | Out-Null }
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] Mirror: '$srcFull' -> '$dstAbs'" | Add-Content -LiteralPath $logFile
$robocopyArgs = @(
>>>>>>> main
=======
$robocopyArgs = @(
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
$srcFull,
$dstAbs,
'/MIR','/MT:8','/R:1','/W:1','/COPY:DAT','/DCOPY:DAT','/FFT','/NFL','/NDL','/NP','/NJH','/NJS','/XD','_archive'
)
<<<<<<< HEAD
<<<<<<< HEAD
$null = & robocopy @args 2>&1 | Add-Content -LiteralPath $logFile
=======
$null = & robocopy @robocopyArgs 2>&1 | Add-Content -LiteralPath $logFile
>>>>>>> main
=======
$null = & robocopy @robocopyArgs 2>&1 | Add-Content -LiteralPath $logFile
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
$rc = $LASTEXITCODE
if ($rc -lt 8) {
$sequencesMirrored++
@@ -285,8 +208,6 @@ try {
}
}
<<<<<<< HEAD
<<<<<<< HEAD
# Print summary report to console
Write-Host "=== SUMMARY REPORT ===" -ForegroundColor Magenta
Write-Host "Dailies scanned: $dailiesScanned" -ForegroundColor White
@@ -294,100 +215,42 @@ try {
Write-Host "Planned copies: $toCopy" -ForegroundColor Green
Write-Host "Completed OK: $sequencesMirrored" -ForegroundColor Green
Write-Host "Completed FAIL: $mirrorFailures" -ForegroundColor Red
=======
# Print summary report to console
Write-Host "=== SUMMARY REPORT ===" -ForegroundColor Magenta
Write-Host "Dailies scanned: $dailiesScanned" -ForegroundColor White
Write-Host "Sequences found: $total" -ForegroundColor White
Write-Host "Planned copies: $toCopy" -ForegroundColor Green
Write-Host "Completed OK: $sequencesMirrored" -ForegroundColor Green
Write-Host "Completed FAIL: $mirrorFailures" -ForegroundColor Red
Write-Host "Files renamed: $filesRenamedTotal (collisions: $renameCollisions, errors: $renameErrors)" -ForegroundColor White
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
# Summarize skipped sequences
$skippedLines = @()
foreach ($line in $lines) {
if ($line.StartsWith('[SKIP]')) {
$skippedLines += $line
}
}
if ($skippedLines.Count -gt 0) {
Write-Host "`n=== SKIPPED SEQUENCES ===" -ForegroundColor Yellow
$skippedByReason = @{}
foreach ($skip in $skippedLines) {
$parts = $skip -split '\|'
$reason = $parts[3]
$seqName = $parts[2]
if (-not $skippedByReason.ContainsKey($reason)) {
$skippedByReason[$reason] = @()
}
$skippedByReason[$reason] += $seqName
}
foreach ($reason in $skippedByReason.Keys) {
$seqs = $skippedByReason[$reason]
Write-Host "$reason ($($seqs.Count) sequences):" -ForegroundColor Yellow
foreach ($seq in $seqs | Sort-Object) {
Write-Host " - $seq" -ForegroundColor White
}
}
Write-Host "========================" -ForegroundColor Yellow
}
Write-Host "=====================" -ForegroundColor Magenta
# Summarize skipped sequences
$skippedLines = @()
foreach ($line in $lines) {
if ($line.StartsWith('[SKIP]')) {
$skippedLines += $line
}
}
if ($skippedLines.Count -gt 0) {
Write-Host "`n=== SKIPPED SEQUENCES ===" -ForegroundColor Yellow
$skippedByReason = @{}
foreach ($skip in $skippedLines) {
$parts = $skip -split '\|'
$reason = $parts[3]
$seqName = $parts[2]
if (-not $skippedByReason.ContainsKey($reason)) {
$skippedByReason[$reason] = @()
}
$skippedByReason[$reason] += $seqName
}
foreach ($reason in $skippedByReason.Keys) {
$seqs = $skippedByReason[$reason]
Write-Host "$reason ($($seqs.Count) sequences):" -ForegroundColor Yellow
foreach ($seq in $seqs | Sort-Object) {
Write-Host " - $seq" -ForegroundColor White
}
}
Write-Host "========================" -ForegroundColor Yellow
}
Write-Host "=====================" -ForegroundColor Magenta
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] === UpdateSequences (ps1) completed (d=$dailiesScanned seq=$total ok=$sequencesMirrored fail=$mirrorFailures) ===" | Add-Content -LiteralPath $logFile
<<<<<<< HEAD
Write-Host "@$logFile"
=======
# Print summary report to console
Write-Host "=== SUMMARY REPORT ===" -ForegroundColor Magenta
Write-Host "Dailies scanned: $dailiesScanned" -ForegroundColor White
Write-Host "Sequences found: $total" -ForegroundColor White
Write-Host "Planned copies: $toCopy" -ForegroundColor Green
Write-Host "Completed OK: $sequencesMirrored" -ForegroundColor Green
Write-Host "Completed FAIL: $mirrorFailures" -ForegroundColor Red
Write-Host "Files renamed: $filesRenamedTotal (collisions: $renameCollisions, errors: $renameErrors)" -ForegroundColor White
# Summarize skipped sequences
$skippedLines = @()
foreach ($line in $lines) {
if ($line.StartsWith('[SKIP]')) {
$skippedLines += $line
}
}
if ($skippedLines.Count -gt 0) {
Write-Host "`n=== SKIPPED SEQUENCES ===" -ForegroundColor Yellow
$skippedByReason = @{}
foreach ($skip in $skippedLines) {
$parts = $skip -split '\|'
$reason = $parts[3]
$seqName = $parts[2]
if (-not $skippedByReason.ContainsKey($reason)) {
$skippedByReason[$reason] = @()
}
$skippedByReason[$reason] += $seqName
}
foreach ($reason in $skippedByReason.Keys) {
$seqs = $skippedByReason[$reason]
Write-Host "$reason ($($seqs.Count) sequences):" -ForegroundColor Yellow
foreach ($seq in $seqs | Sort-Object) {
Write-Host " - $seq" -ForegroundColor White
}
}
Write-Host "========================" -ForegroundColor Yellow
}
Write-Host "=====================" -ForegroundColor Magenta
"[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] === UpdateSequences (ps1) completed (d=$dailiesScanned seq=$total ok=$sequencesMirrored fail=$mirrorFailures) ===" | Add-Content -LiteralPath $logFile
Write-Host "@$logFile"
>>>>>>> main
=======
Write-Host "@$logFile"
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
exit 0
}
catch {
@@ -400,14 +263,4 @@ catch {
($_.Exception | Out-String) | Set-Content -LiteralPath ($planFile + '.error.txt') -Encoding ASCII
Write-Host "ERROR: $_"
exit 1
}
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> main
=======
>>>>>>> d89d8e0cf215637d0ffabf165877815ab4203f37
}