cfgdeploy updateseq to Renders
This commit is contained in:
@@ -2745,8 +2745,6 @@ Let me look at UpdateSequences and understand how it works, and how zip_sequence
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -2791,8 +2789,6 @@ Let me look at UpdateAllSequences and UpdateProjectBatches to see how they handl
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -2892,8 +2888,6 @@ I'll trace the path resolution mechanism to ensure precise directory targeting.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -2926,62 +2920,22 @@ Parameters:
|
||||
"caseInsensitive": false
|
||||
}
|
||||
```
|
||||
Result:
|
||||
Additional data:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": {
|
||||
"pattern": "Renders|_zipped|find_sequence",
|
||||
"path": "A:\\1 Amazon_Active_Projects\\3 ProjectStructure\\zip_sequences.py",
|
||||
"outputMode": "content",
|
||||
"workspaceResults": {
|
||||
"a:\\1 Amazon_Active_Projects\\3 ProjectStructure": {
|
||||
"content": {
|
||||
"matches": [
|
||||
{
|
||||
"file": "zip_sequences.py",
|
||||
"matches": [
|
||||
{
|
||||
"lineNumber": 4,
|
||||
"content": "Default mode scans `Renders/`, produces ZIP archives under `Renders/_zipped/`,"
|
||||
},
|
||||
{
|
||||
"lineNumber": 43,
|
||||
"content": "RENDER_ROOT = Path(\"Renders\")"
|
||||
},
|
||||
{
|
||||
"lineNumber": 44,
|
||||
"content": "ARCHIVE_ROOT = RENDER_ROOT / \"_zipped\""
|
||||
},
|
||||
{
|
||||
"lineNumber": 479,
|
||||
"content": "def find_sequence_dirs(root: Path, *, verbose: bool = False) -> Iterator[Path]:"
|
||||
},
|
||||
{
|
||||
"lineNumber": 995,
|
||||
"content": " for seq_dir in find_sequence_dirs(RENDER_ROOT, verbose=verbose):"
|
||||
},
|
||||
{
|
||||
"lineNumber": 1114,
|
||||
"content": " log(\"zip\", \"Render root 'Renders' not found; nothing to zip.\")"
|
||||
},
|
||||
{
|
||||
"lineNumber": 1157,
|
||||
"content": " \"Archives updated. Stage manually with `git add Renders/_zipped`, if desired.\","
|
||||
},
|
||||
{
|
||||
"lineNumber": 1176,
|
||||
"content": " log(\"expand\", \"No archives to expand (missing 'Renders/_zipped').\")"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"totalLines": 8,
|
||||
"totalMatchedLines": 8
|
||||
}
|
||||
}
|
||||
"isPruned": true,
|
||||
"pattern": "Renders|_zipped|find_sequence",
|
||||
"path": "A:\\1 Amazon_Active_Projects\\3 ProjectStructure\\zip_sequences.py",
|
||||
"outputMode": "content",
|
||||
"totalFiles": 1,
|
||||
"totalMatches": 8,
|
||||
"topFiles": [
|
||||
{
|
||||
"uri": "zip_sequences.py",
|
||||
"matchCount": 8
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Status: **completed**
|
||||
@@ -3030,7 +2984,6 @@ Let me implement.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Implementing the fix:
|
||||
|
||||
|
||||
@@ -3083,8 +3036,6 @@ The user said "update all the sequences directly next to the batch, or in a subm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
@@ -3114,7 +3065,6 @@ Let me provide a summary to the user.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Summary of changes:
|
||||
|
||||
**1. `UpdateSequences.bat` – run from the batch directory**
|
||||
@@ -3156,8 +3106,6 @@ Let me look at the UpdateSequences.ps1 to understand how collisions are currentl
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
rg: : IO error for operation on : The system cannot find the path specified. (os error 3)
|
||||
@@ -3236,7 +3184,6 @@ Let me implement:
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking how `zip_sequences` resolves paths and the project structure:
|
||||
|
||||
|
||||
@@ -3294,7 +3241,6 @@ Let me implement: 1. Add -RootPath parameter to Rename-SequencePreviewMp4
|
||||
|
||||
---
|
||||
|
||||
|
||||
Implementing prioritization (frame-range match, then age) and moving collisions to `_collisions`.
|
||||
|
||||
|
||||
@@ -3319,8 +3265,6 @@ I need to add the -RootPath parameter to the call site. Let me find that.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
@@ -3357,7 +3301,6 @@ Let me also fix the case when target exists - we're moving it to collisions. But
|
||||
|
||||
---
|
||||
|
||||
|
||||
Ensuring the target file moved to collisions gets a unique name when `_collisions` already contains it:
|
||||
|
||||
|
||||
@@ -3384,8 +3327,6 @@ Let me read the final file to make sure everything looks correct.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -3403,7 +3344,6 @@ There's a bug: when we have $moveToCollisions, we're iterating over objects that
|
||||
|
||||
---
|
||||
|
||||
|
||||
Fixing `$moveToCollisions` iteration: each item is an object with a `.File` property, not a file object.
|
||||
|
||||
|
||||
@@ -3428,7 +3368,6 @@ When Count=2, $candidates[1..1] gives the second element. Good.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Summary of changes:
|
||||
|
||||
**`Rename-SequencePreviewMp4` in `UpdateSequences.ps1`:**
|
||||
@@ -3509,8 +3448,6 @@ $candidates = @($mp4s | ForEach-Object { ... } | Sort-Object ...)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="ripgrep_raw_search">
|
||||
@@ -3529,105 +3466,22 @@ Parameters:
|
||||
"caseInsensitive": false
|
||||
}
|
||||
```
|
||||
Result:
|
||||
Additional data:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": {
|
||||
"pattern": "\\.Count",
|
||||
"path": "A:\\1 Amazon_Active_Projects\\3 ProjectStructure\\UpdateSequences.ps1",
|
||||
"outputMode": "content",
|
||||
"workspaceResults": {
|
||||
"a:\\1 Amazon_Active_Projects\\3 ProjectStructure": {
|
||||
"content": {
|
||||
"matches": [
|
||||
{
|
||||
"file": "UpdateSequences.ps1",
|
||||
"matches": [
|
||||
{
|
||||
"lineNumber": 147,
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 148,
|
||||
"content": " if ($mp4s.Count -eq 0) { return [pscustomobject]@{ Renamed = 0; Collisions = 0; Errors = 0; Checked = 0 } }"
|
||||
},
|
||||
{
|
||||
"lineNumber": 149,
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 150,
|
||||
"content": " $checked = $mp4s.Count"
|
||||
},
|
||||
{
|
||||
"lineNumber": 151,
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 170,
|
||||
"content": " $best = $candidates[0].File",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 171,
|
||||
"content": " $moveToCollisions = $candidates[1..($candidates.Count - 1)]"
|
||||
},
|
||||
{
|
||||
"lineNumber": 172,
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 272,
|
||||
"content": " $seqDirs = @(Get-ChildItem -LiteralPath $d.FullName -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -notlike '_*' })",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 273,
|
||||
"content": " if ($seqDirs.Count -eq 0) {"
|
||||
},
|
||||
{
|
||||
"lineNumber": 274,
|
||||
"content": " Add-SequenceFolder -Directory $d -Map $sequenceMap",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 285,
|
||||
"content": " $seqDirs = @(Get-ChildItem -LiteralPath $d.FullName -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -notlike '_*' })",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 286,
|
||||
"content": " if ($seqDirs.Count -eq 0) {"
|
||||
},
|
||||
{
|
||||
"lineNumber": 287,
|
||||
"content": " Add-SequenceFolder -Directory $d -Map $sequenceMap",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 302,
|
||||
"content": " $seqDirs = @(Get-ChildItem -LiteralPath $seq.FullName -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -notlike '_*' })",
|
||||
"isContextLine": true
|
||||
},
|
||||
{
|
||||
"lineNumber": 303,
|
||||
"content": " if ($seqDirs.Count -eq 0) {"
|
||||
},
|
||||
{
|
||||
"lineNumber": 304,
|
||||
"content": " Add-SequenceFolder -Directory $seq -Map $sequenceMap",
|
||||
"isContextLine": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"totalLines": 17,
|
||||
"totalMatchedLines": 6
|
||||
}
|
||||
}
|
||||
"isPruned": true,
|
||||
"pattern": "\\.Count",
|
||||
"path": "A:\\1 Amazon_Active_Projects\\3 ProjectStructure\\UpdateSequences.ps1",
|
||||
"outputMode": "content",
|
||||
"totalFiles": 1,
|
||||
"totalMatches": 6,
|
||||
"topFiles": [
|
||||
{
|
||||
"uri": "UpdateSequences.ps1",
|
||||
"matchCount": 17
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Status: **completed**
|
||||
@@ -3653,7 +3507,6 @@ So we need to wrap the pipeline in @().
|
||||
|
||||
---
|
||||
|
||||
|
||||
Forcing the pipeline result into an array — a single object has no `.Count` property.
|
||||
|
||||
|
||||
@@ -3676,7 +3529,6 @@ Actually the `$candidates[1..($candidates.Count - 1)]` when Count=1 would give 1
|
||||
|
||||
---
|
||||
|
||||
|
||||
This is fixed. When the pipeline returned a single MP4, `$candidates` was a scalar, which has no `.Count` in PowerShell. The pipeline output is now wrapped in `@()` so it’s always an array, and `$moveToCollisions` is set only when there is more than one candidate.
|
||||
|
||||
---
|
||||
@@ -3773,8 +3625,6 @@ The PSScriptAnalyzer warnings (severity 4) about PSScriptRoot, errors, best - th
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -3869,8 +3719,6 @@ Let me re-read the whole function. Maybe there's a character encoding issue or i
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -4004,8 +3852,6 @@ Let me try a different approach - maybe the issue is with the nested function. I
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -4027,7 +3873,6 @@ Let me also fix the PSScriptRoot - we could use a different variable name like $
|
||||
|
||||
---
|
||||
|
||||
|
||||
Moving the nested function out and consolidating try/catch to fix parser confusion:
|
||||
|
||||
|
||||
@@ -4072,8 +3917,6 @@ Good. Now let me move Parse-FrameRange outside of Rename-SequencePreviewMp4 and
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
The string to replace was not found in the file.
|
||||
@@ -4109,8 +3952,6 @@ The first replace failed - the context might have changed. Let me read the file
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
@@ -4128,7 +3969,6 @@ The Parse-FrameRange was removed but Parse-Mp4FrameRange is now called - but we
|
||||
|
||||
---
|
||||
|
||||
|
||||
Adding the Parse-Mp4FrameRange function.
|
||||
|
||||
|
||||
@@ -4153,8 +3993,6 @@ Good. Now let me verify the script parses correctly by running it.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
|
||||
@@ -4210,3 +4048,216 @@ Lint errors for `A:\1 Amazon_Active_Projects\3 ProjectStructure\UpdateSequences.
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
The linter still shows errors. The "Missing closing '}'" and "Try statement missing Catch" - these might be false positives from the linter (e.g. the PowerShell extension or PSScriptAnalyzer getting confused by complex expressions). Let me try a simpler validation - just run the script with -WhatIf or a dry run to see if it actually parses.
|
||||
|
||||
Actually, let me try running the script to see if it actually works:
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
|
||||
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cd "A:\1 Amazon_Active_Projects\3 ProjectStructure" && powershell -NoProfile -ExecutionPolicy Bypass -File "UpdateSequences.ps1" 2>&1 | Select-Object -First 15</summary>
|
||||
|
||||
```bash
|
||||
cd "A:\1 Amazon_Active_Projects\3 ProjectStructure" && powershell -NoProfile -ExecutionPolicy Bypass -File "UpdateSequences.ps1" 2>&1 | Select-Object -First 15
|
||||
```
|
||||
|
||||
```
|
||||
=== SUMMARY REPORT ===
|
||||
Sequences scanned: 2
|
||||
Files renamed: 0 (collisions: 0, errors: 0)
|
||||
Preview MP4s renamed: 0 (collisions: 0, errors: 0)
|
||||
=====================
|
||||
|
||||
```
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
The script runs successfully! So the syntax is valid. The linter errors appear to be false positives - possibly from the PowerShell extension or PSScriptAnalyzer getting confused by the complex script blocks (e.g. the Sort-Object with calculated properties, or the nested ForEach-Object).
|
||||
|
||||
The PSScriptAnalyzer warnings:
|
||||
- "renamed", "errors", "best" assigned but never used - these are false positives; they're used in the return object and in the catch block
|
||||
- "Parse-Mp4FrameRange uses unapproved verb" - Parse is not in the approved verb list. Get is approved. We could rename to Get-Mp4FrameRange.
|
||||
|
||||
Let me rename Parse-Mp4FrameRange to Get-Mp4FrameRange to fix that warning. The "assigned but never used" - those are false positives since we use them in the return hashtable and in the catch block. The linter might not be tracking the usage correctly.
|
||||
|
||||
I'll rename Parse-Mp4FrameRange to Get-Mp4FrameRange for the approved verb.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Confirming the script runs. Linter errors appear to be false positives—PowerShell parses it correctly. Renaming to use an approved verb:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
|
||||
<details><summary>Tool use: **edit_file_v2** • Edit file: A:\1 Amazon_Active_Projects\3 ProjectStructure\UpdateSequences.ps1</summary>
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
|
||||
<details><summary>Tool use: **edit_file_v2** • Edit file: A:\1 Amazon_Active_Projects\3 ProjectStructure\UpdateSequences.ps1</summary>
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
I've made the changes. Let me summarize for the user:
|
||||
|
||||
1. Fixed PSScriptRoot warning by using $ScriptDir instead
|
||||
2. Moved Parse-FrameRange (now Get-Mp4FrameRange) to top-level to avoid nested function parsing issues
|
||||
3. Put `} catch {` on same line to help some parsers
|
||||
4. Renamed to Get-Mp4FrameRange for approved verb
|
||||
|
||||
The script runs successfully. The "Missing closing '}'" and "Try missing Catch" errors from the linter are likely false positives - the PowerShell parser validates the script correctly. The "assigned but never used" warnings for $renamed, $errors, $best are also false - they're used in the return object and in the catch block. The linter might not be tracking variable usage across the full script block.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
Changes made:
|
||||
|
||||
1. **PSScriptRoot** – Replaced with `$ScriptDir` to avoid assignment to automatic variables.
|
||||
2. **Nested function** – Moved `Parse-Mp4FrameRange` out of `Rename-SequencePreviewMp4` to avoid parser confusion.
|
||||
3. **Try/catch** – Put `} catch {` on the same line to satisfy the parser.
|
||||
4. **Approved verb** – Renamed to `Get-Mp4FrameRange`.
|
||||
|
||||
The script runs successfully. The "Missing closing '}'" and "Try missing Catch" messages are likely false positives from the extension/PSScriptAnalyzer (e.g. with the `Sort-Object` calculated properties). The "assigned but never used" warnings for `$renamed`, `$errors`, and `$best` are also incorrect; they’re used in the return object and in the `catch` block.
|
||||
|
||||
---
|
||||
|
||||
_**User**_
|
||||
|
||||
Renders\UpdateSequences.bat should be spawned by NewProject, and cfgdeploy should populate/update it there as well.
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
The user wants:
|
||||
1. NewProject.bat should spawn (create) Renders\UpdateSequences.bat
|
||||
2. ConfigLoader/cfgdeploy should populate/update it there as well
|
||||
|
||||
I need to find:
|
||||
1. NewProject.bat - what it does and how it deploys files
|
||||
2. ConfigLoader.ps1 or ConfigLoader.bat - what it deploys and where
|
||||
3. How UpdateSequences.bat gets to Renders
|
||||
|
||||
Let me search for these.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: A:\1 Amazon_Active_Projects\3 ProjectStructure\NewProject.bat</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: A:\1 Amazon_Active_Projects\3 ProjectStructure\ConfigLoader.ps1</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
rg: : IO error for operation on : The system cannot find the path specified. (os error 3)
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
I see the flow now:
|
||||
|
||||
**NewProject.bat:**
|
||||
|
||||
1. Lines 64-67: Creates Renders and copies UpdateSequences.bat, ZipSeqArchv.bat, UnzipSeqArchv.bat, CompressPNGs.bat to projectRoot\Renders\ from templateRoot (STRUCT_DIR)
|
||||
|
||||
So NewProject.bat **already** spawns UpdateSequences.bat into Renders! It's in the for loop:
|
||||
```
|
||||
for %%F in (UpdateSequences.bat ZipSeqArchv.bat UnzipSeqArchv.bat CompressPNGs.bat) do (
|
||||
if exist "%templateRoot%\%%F" copy /Y "%templateRoot%\%%F" "%projectRoot%\Renders\%%F" >nul
|
||||
)
|
||||
```
|
||||
|
||||
**ConfigLoader.ps1:**
|
||||
|
||||
1. Lines 264-271: The $specs array includes UpdateSequences.bat
|
||||
2. But the deployment logic (lines 308-355) uses `Get-ChildItem -Recurse -Filter $spec.Name` to find targets - it searches for files in the project that match the name. So it updates UpdateSequences.bat wherever it finds it (in project root, Renders, etc.)
|
||||
|
||||
3. Lines 372-389: There's a separate "Deploy to Renders" section that explicitly deploys ZipSeqArchv.bat, UnzipSeqArchv.bat, CompressPNGs.bat to Renders. But it does NOT include UpdateSequences.bat!
|
||||
|
||||
So the user wants:
|
||||
1. NewProject - already spawns UpdateSequences.bat to Renders ✓ (it's already there)
|
||||
2. ConfigLoader/cfgdeploy - should also populate/update UpdateSequences.bat in Renders
|
||||
|
||||
The fix: Add UpdateSequences.bat to the $zipFiles array in ConfigLoader.ps1 (the Renders deploy section), so it gets the same treatment as ZipSeqArchv, UnzipSeqArchv, CompressPNGs.
|
||||
|
||||
Let me check - the $specs loop already finds and updates UpdateSequences.bat wherever it exists. So if we have it in Renders, it would find it. The logic searches for targets:
|
||||
```
|
||||
$targets = Get-ChildItem -LiteralPath $resolvedProject -Recurse -Filter $spec.Name -File -Force -ErrorAction SilentlyContinue
|
||||
$targets = $targets | Where-Object { $_.FullName -ne $spec.Source }
|
||||
```
|
||||
|
||||
So it finds all UpdateSequences.bat in the project recursively. If UpdateSequences.bat is in Renders, it would find it and update it. So the issue might be: when the project doesn't have UpdateSequences.bat in Renders yet (e.g. older project), the $specs loop won't create it - it only updates existing files. It only creates if there are targets.
|
||||
|
||||
The Renders deploy section ($zipFiles) explicitly copies to Renders regardless of whether the file exists. So adding UpdateSequences.bat there would:
|
||||
1. Create Renders\UpdateSequences.bat when it doesn't exist
|
||||
2. Update it when it does exist (Copy-Item -Force overwrites)
|
||||
|
||||
So I need to add UpdateSequences.bat to the $zipFiles array in ConfigLoader.ps1 (the Renders deploy section), so it gets deployed to Renders just like ZipSeqArchv, UnzipSeqArchv, CompressPNGs.
|
||||
|
||||
Let me also fix the comment - it says "ZipSeqArchv.bat and UnzipSeqArchv.bat" but it now includes CompressPNGs. I'll update to say "Deploying Renders batch files" or similar.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking deployment flow: NewProject copies UpdateSequences.bat to Renders; ConfigLoader's Renders deploy omits it.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
|
||||
<details><summary>Tool use: **edit_file_v2** • Edit file: A:\1 Amazon_Active_Projects\3 ProjectStructure\ConfigLoader.ps1</summary>
|
||||
|
||||
Status: **loading**
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
+7
-6
@@ -370,22 +370,23 @@ if ($MyInvocation.InvocationName -ne '.') {
|
||||
|
||||
Write-Host "All batch files refreshed successfully." -ForegroundColor Green
|
||||
|
||||
# Deploy ZipSeqArchv.bat, UnzipSeqArchv.bat, CompressPNGs.bat to \Renders
|
||||
Write-Host "`n=== Deploying ZipSeqArchv.bat and UnzipSeqArchv.bat to \Renders ===" -ForegroundColor Magenta
|
||||
# Deploy UpdateSequences.bat, ZipSeqArchv.bat, UnzipSeqArchv.bat, CompressPNGs.bat to \Renders
|
||||
Write-Host "`n=== Deploying Renders batch files to \Renders ===" -ForegroundColor Magenta
|
||||
$rendersDir = Join-Path -Path $resolvedProject -ChildPath 'Renders'
|
||||
if (-not (Test-Path -LiteralPath $rendersDir -PathType Container)) {
|
||||
New-Item -Path $rendersDir -ItemType Directory -Force | Out-Null
|
||||
Write-Host "Created Renders directory: $rendersDir" -ForegroundColor Cyan
|
||||
}
|
||||
$zipFiles = @(
|
||||
$rendersBatches = @(
|
||||
@{ Name = 'UpdateSequences.bat'; Source = Join-Path -Path $structDir -ChildPath 'UpdateSequences.bat' },
|
||||
@{ Name = 'ZipSeqArchv.bat'; Source = Join-Path -Path $structDir -ChildPath 'ZipSeqArchv.bat' },
|
||||
@{ Name = 'UnzipSeqArchv.bat'; Source = Join-Path -Path $structDir -ChildPath 'UnzipSeqArchv.bat' },
|
||||
@{ Name = 'CompressPNGs.bat'; Source = Join-Path -Path $structDir -ChildPath 'CompressPNGs.bat' }
|
||||
)
|
||||
foreach ($zipFile in $zipFiles) {
|
||||
$targetPath = Join-Path -Path $rendersDir -ChildPath $zipFile.Name
|
||||
foreach ($bat in $rendersBatches) {
|
||||
$targetPath = Join-Path -Path $rendersDir -ChildPath $bat.Name
|
||||
try {
|
||||
Copy-Item -Path $zipFile.Source -Destination $targetPath -Force
|
||||
Copy-Item -Path $bat.Source -Destination $targetPath -Force
|
||||
Write-Host "[OK] $targetPath" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
|
||||
Reference in New Issue
Block a user