Phase 3+4 rename reorg: repo dir renames + startnet.cmd menu
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>
This commit is contained in:
@@ -37,7 +37,7 @@ echo Please select an option:
|
||||
echo.
|
||||
echo 1. GEA Standard
|
||||
echo 2. GEA Engineer
|
||||
echo 3. GEA Shopfloor
|
||||
echo 3. GEA Shopfloor (sub-menu)
|
||||
echo 4. GE Standard
|
||||
echo 5. GE Engineer
|
||||
echo 6. GE Shopfloor Lockdown
|
||||
@@ -47,13 +47,46 @@ echo ========================================
|
||||
echo.
|
||||
set /p choice=Enter your choice (1-7):
|
||||
|
||||
REM --- Only shopfloor images (3,6,7) need GCCH enrollment ---
|
||||
REM --- Shopfloor images (3,6,7) need GCCH enrollment + (for 3) PC-type sub-menu.
|
||||
REM Choice 3 = GEA Shopfloor: drill into sub-menu first to pick the gea-shopfloor-*
|
||||
REM sub-category, THEN the office menu, THEN machine number for collections+nocollections.
|
||||
set PPKG=
|
||||
if "%choice%"=="3" goto enroll_menu
|
||||
if "%choice%"=="3" goto gea_shopfloor_submenu
|
||||
if "%choice%"=="6" goto enroll_menu
|
||||
if "%choice%"=="7" goto enroll_menu
|
||||
goto enroll_staged
|
||||
|
||||
:gea_shopfloor_submenu
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo GEA Shopfloor PC Sub-Type
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 1. Machine with Collections (eDNC + UDC + Plant Apps)
|
||||
echo 2. Machine without Collections (eDNC + Plant Apps, no UDC)
|
||||
echo 3. Common (Timeclock, Lab; WJ Shopfloor only)
|
||||
echo 4. Keyence (VR-6000 microscope/profilometer)
|
||||
echo 5. CMM (Hexagon PC-DMIS + Protect Viewer)
|
||||
echo 6. Genspect
|
||||
echo 7. Heattreat (placeholder)
|
||||
echo 8. Wax and Trace
|
||||
echo 9. Display (kiosk dashboard)
|
||||
echo.
|
||||
set PCTYPE=
|
||||
set /p ges_choice=Enter your choice (1-9):
|
||||
if "%ges_choice%"=="1" set PCTYPE=gea-shopfloor-collections
|
||||
if "%ges_choice%"=="2" set PCTYPE=gea-shopfloor-nocollections
|
||||
if "%ges_choice%"=="3" set PCTYPE=gea-shopfloor-common
|
||||
if "%ges_choice%"=="4" set PCTYPE=gea-shopfloor-keyence
|
||||
if "%ges_choice%"=="5" set PCTYPE=gea-shopfloor-cmm
|
||||
if "%ges_choice%"=="6" set PCTYPE=gea-shopfloor-genspect
|
||||
if "%ges_choice%"=="7" set PCTYPE=gea-shopfloor-heattreat
|
||||
if "%ges_choice%"=="8" set PCTYPE=gea-shopfloor-waxtrace
|
||||
if "%ges_choice%"=="9" set PCTYPE=gea-shopfloor-display
|
||||
if "%PCTYPE%"=="" goto gea_shopfloor_submenu
|
||||
goto enroll_menu
|
||||
|
||||
:enroll_menu
|
||||
cls
|
||||
echo.
|
||||
@@ -91,83 +124,26 @@ if "%enroll%"=="" goto enroll_menu
|
||||
set PPKG=
|
||||
if not "%OFFICE%"=="" set PPKG=GCCH_Prod_SFLD_%OFFICE%_%REGION%_Exp_%PPKG_EXP%_%PPKG_VER%.ppkg
|
||||
|
||||
:pctype_menu
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Shopfloor PC Type
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 1. CMM
|
||||
echo 2. Wax and Trace
|
||||
echo 3. Keyence
|
||||
echo 4. Genspect
|
||||
echo 5. Display
|
||||
echo 6. Standard
|
||||
echo 7. Lab
|
||||
echo.
|
||||
set PCTYPE=
|
||||
set /p pctype_choice=Enter your choice (1-7):
|
||||
if "%pctype_choice%"=="1" set PCTYPE=CMM
|
||||
if "%pctype_choice%"=="2" set PCTYPE=WaxAndTrace
|
||||
if "%pctype_choice%"=="3" set PCTYPE=Keyence
|
||||
if "%pctype_choice%"=="4" set PCTYPE=Genspect
|
||||
if "%pctype_choice%"=="5" set PCTYPE=Display
|
||||
if "%pctype_choice%"=="6" set PCTYPE=Standard
|
||||
if "%pctype_choice%"=="7" set PCTYPE=Lab
|
||||
if "%PCTYPE%"=="" goto pctype_menu
|
||||
|
||||
REM --- Sub-type selection menus ---
|
||||
REM PCSUBTYPE is written to pc-subtype.txt alongside pc-type.txt.
|
||||
REM Scripts read it to look up the right profile in site-config.json.
|
||||
REM --- 2026-05-04 rename reorg: PCTYPE is set by gea_shopfloor_submenu above
|
||||
REM (single string, e.g. gea-shopfloor-collections). Old per-type submenus
|
||||
REM (Standard sub-type, Display sub-type) are gone - flatten via the new
|
||||
REM gea-shopfloor-* names. PCSUBTYPE / DISPLAYTYPE are no longer written
|
||||
REM (pc-subtype.txt / display-type.txt deprecated). Configure-PC.ps1 still
|
||||
REM looks up site-config.json profiles via the single full string.
|
||||
set PCSUBTYPE=
|
||||
set DISPLAYTYPE=
|
||||
|
||||
REM --- Standard sub-type ---
|
||||
if not "%PCTYPE%"=="Standard" goto skip_standard_menu
|
||||
:standard_menu
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Standard PC Sub-Type
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 1. Machine (WJ Shopfloor, Plant Apps, eDNC, UDC)
|
||||
echo 2. Timeclock (WJ Shopfloor only)
|
||||
echo.
|
||||
set /p standard_choice=Enter your choice (1-2):
|
||||
if "%standard_choice%"=="1" set PCSUBTYPE=Machine
|
||||
if "%standard_choice%"=="2" set PCSUBTYPE=Timeclock
|
||||
if "%PCSUBTYPE%"=="" goto standard_menu
|
||||
|
||||
REM --- Machine number (Standard-Machine only; Timeclock PCs do not use one) ---
|
||||
REM --- Machine number (collections + nocollections only; other variants don't use one) ---
|
||||
set MACHINENUM=9999
|
||||
if "%PCSUBTYPE%"=="Timeclock" goto skip_standard_menu
|
||||
if /i "%PCTYPE%"=="gea-shopfloor-collections" goto prompt_machinenum
|
||||
if /i "%PCTYPE%"=="gea-shopfloor-nocollections" goto prompt_machinenum
|
||||
goto skip_machinenum
|
||||
:prompt_machinenum
|
||||
echo.
|
||||
set /p MACHINENUM=Enter machine number (digits, or Enter for 9999):
|
||||
if "%MACHINENUM%"=="" set MACHINENUM=9999
|
||||
echo Machine number: %MACHINENUM%
|
||||
:skip_standard_menu
|
||||
|
||||
REM --- Display sub-type ---
|
||||
if not "%PCTYPE%"=="Display" goto skip_display_menu
|
||||
:display_menu
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Display Type
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 1. Dashboard
|
||||
echo 2. Lobby Display
|
||||
echo.
|
||||
set /p display_choice=Enter your choice (1-2):
|
||||
if "%display_choice%"=="1" set DISPLAYTYPE=Dashboard
|
||||
if "%display_choice%"=="1" set PCSUBTYPE=Dashboard
|
||||
if "%display_choice%"=="2" set DISPLAYTYPE=Lobby
|
||||
if "%display_choice%"=="2" set PCSUBTYPE=Lobby
|
||||
if "%PCSUBTYPE%"=="" goto display_menu
|
||||
:skip_display_menu
|
||||
:skip_machinenum
|
||||
|
||||
REM --- Map enrollment share early (kept open for copy after imaging) ---
|
||||
set NEED_ENROLL=0
|
||||
@@ -303,8 +279,10 @@ echo Manual fallback created at W:\enroll.cmd
|
||||
REM --- Copy shopfloor PC type setup scripts ---
|
||||
if "%PCTYPE%"=="" goto cleanup_enroll
|
||||
echo %PCTYPE%> W:\Enrollment\pc-type.txt
|
||||
if not "%DISPLAYTYPE%"=="" echo %DISPLAYTYPE%> W:\Enrollment\display-type.txt
|
||||
if not "%PCSUBTYPE%"=="" echo %PCSUBTYPE%> W:\Enrollment\pc-subtype.txt
|
||||
REM 2026-05-04 rename reorg: pc-subtype.txt and display-type.txt no longer
|
||||
REM written. PCTYPE is a single full string ("gea-shopfloor-collections",
|
||||
REM "gea-shopfloor-display", etc.). pcSubType-aware code paths fall back
|
||||
REM to empty string and are handled as alias-resolution-only.
|
||||
if not "%MACHINENUM%"=="" echo %MACHINENUM%> W:\Enrollment\machine-number.txt
|
||||
copy /Y "Y:\shopfloor-setup\Run-ShopfloorSetup.ps1" "W:\Enrollment\Run-ShopfloorSetup.ps1"
|
||||
REM --- Always copy Shopfloor baseline scripts ---
|
||||
@@ -356,7 +334,7 @@ REM The tsgwp00525 SFLD share that holds the canonical copy is not yet reachable
|
||||
REM during shopfloor-setup (Azure DSC provisions those creds later), so this
|
||||
REM bootstrap exists to get the first-install through. Post-imaging, the
|
||||
REM unified GE-Enforce dispatcher takes over from the share for ongoing updates.
|
||||
if /i not "%PCTYPE%"=="CMM" goto skip_cmm_stage
|
||||
if /i not "%PCTYPE%"=="gea-shopfloor-cmm" goto skip_cmm_stage
|
||||
if exist "Y:\installers-post\cmm\cmm-manifest.json" (
|
||||
mkdir W:\CMM-Install 2>NUL
|
||||
xcopy /E /Y /I "Y:\installers-post\cmm" "W:\CMM-Install\"
|
||||
|
||||
Reference in New Issue
Block a user