Pairs with Phase 1+2 from earlier (alias maps in Install-FromManifest,
GE-Enforce, Get-PCProfile, verify-state). See project-shopfloor-rename-reorg
memory for the plan.
Phase 3 (repo + paths):
- git mv per-PC-type dirs to gea-shopfloor-* names:
Standard -> gea-shopfloor-collections
CMM -> gea-shopfloor-cmm
Keyence -> gea-shopfloor-keyence
Genspect -> gea-shopfloor-genspect
WaxAndTrace -> gea-shopfloor-waxtrace
Display -> gea-shopfloor-display
Lab -> gea-shopfloor-common (folded; Timeclock+Lab merge)
- New gea-shopfloor-nocollections/ (clone of collections sans UDC scripts).
- New gea-shopfloor-heattreat/ (placeholder, README only).
- Move Standard/ntlars-backups/ -> _ntlars-backups/ (per-MN, not per-type).
- Run-ShopfloorSetup.ps1: Resolve-PCTypeDir helper walks alias group when
the on-disk dir for the current pcType is missing. Set-MachineNumber
helper-copy gated on collections|nocollections|legacy Standard-Machine.
- Update-MachineNumber.ps1: pcProfiles lookups try gea-shopfloor-collections
first, fall back to legacy Standard-Machine. PowerShell 5.1 compatible
(no null-coalesce).
Phase 4 (startnet.cmd menu):
- Choice 3 "GEA Shopfloor" now drills into a 9-item sub-menu instead of
going straight to enrollment. Sub-cats:
1. Machine with Collections -> gea-shopfloor-collections
2. Machine without Collections -> gea-shopfloor-nocollections
3. Common (Timeclock, Lab) -> gea-shopfloor-common
4. Keyence -> gea-shopfloor-keyence
5. CMM -> gea-shopfloor-cmm
6. Genspect -> gea-shopfloor-genspect
7. Heattreat -> gea-shopfloor-heattreat
8. Wax and Trace -> gea-shopfloor-waxtrace
9. Display -> gea-shopfloor-display
- Office menu (existing 6-option) follows for every sub-cat.
- Machine number prompt only for collections + nocollections.
- pc-subtype.txt + display-type.txt no longer written. PCTYPE is a
single full string (gea-shopfloor-*); subtype-aware code paths fall
back to empty and resolve via the alias map.
- CMM bootstrap stage gate switched from "%PCTYPE%"=="CMM" to
"%PCTYPE%"=="gea-shopfloor-cmm".
Test harness:
- B-enforce/run.sh PCSUBTYPE default changed from "Machine" to "" so
single-arg invocation matches the new single-string scheme. Two-arg
legacy form ("Standard Machine") still works via aliasing.
- B-enforce/tamper.ps1 alias-aware Test-MatrixEntryMatches mirroring
verify-state.ps1.
Smoke-tested on win11 VM as SYSTEM via qga: B-enforce harness 5-phase
cycle (stage / baseline / tamper / heal / idempotent) passes 10/10
with PCType=gea-shopfloor-collections AND with legacy "Standard Machine"
two-arg form.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.3 KiB
Batchfile
39 lines
1.3 KiB
Batchfile
@echo off
|
|
REM Set-MachineNumber.bat - Wrapper for Set-MachineNumber.ps1
|
|
REM
|
|
REM Looks for the .ps1 in three places, in order:
|
|
REM 1. %~dp0Set-MachineNumber.ps1
|
|
REM - .bat and .ps1 side-by-side (normal desktop-copied case, repo layout)
|
|
REM 2. C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1
|
|
REM - dispatcher-copied location, if this .bat lives somewhere else
|
|
REM 3. C:\Enrollment\shopfloor-setup\Standard\Set-MachineNumber.ps1
|
|
REM - canonical enrollment staging copy
|
|
REM
|
|
REM Goto-based dispatch - no nested if blocks, no literal parens in echo lines.
|
|
REM CMD parses "if (...)" blocks by counting parens and will silently eat any
|
|
REM "(" or ")" inside an echo, so keeping the flow flat avoids that class of
|
|
REM syntax bomb entirely.
|
|
|
|
setlocal
|
|
set "PS1=%~dp0Set-MachineNumber.ps1"
|
|
if exist "%PS1%" goto :run
|
|
|
|
set "PS1=C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1"
|
|
if exist "%PS1%" goto :run
|
|
|
|
set "PS1=C:\Enrollment\shopfloor-setup\Standard\Set-MachineNumber.ps1"
|
|
if exist "%PS1%" goto :run
|
|
|
|
echo ERROR: Set-MachineNumber.ps1 not found in any of:
|
|
echo %~dp0Set-MachineNumber.ps1
|
|
echo C:\Users\SupportUser\Desktop\Set-MachineNumber.ps1
|
|
echo C:\Enrollment\shopfloor-setup\Standard\Set-MachineNumber.ps1
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
|
|
:run
|
|
echo Launching: %PS1%
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%PS1%"
|
|
exit /b %errorlevel%
|