feat(dataforth-dos): Add ATESYNC orchestrator and CTONW upload fix
ATESYNC.BAT v1.0: - Boot-time orchestrator (ARCHBAT equivalent from TS-27) - Calls CTONW (upload) then NWTOC (download) - Creates machine folder structure if missing - Accepts machine name as parameter or MACHINE env var CTONW.BAT v3.1: - Fixed upload path: now uploads to T:\%MACHINE%\LOGS\*LOG - Added safeguards to prevent data overwriting: - Refuses to run if MACHINE not set - Refuses to run if T:\%MACHINE% folder missing - Logs machine name, date/time, target path - Uploads all 8 LOG folders plus Reports Based on analysis of TS-27 golden example machine backup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
111
projects/dataforth-dos/batch-files/ATESYNC.BAT
Normal file
111
projects/dataforth-dos/batch-files/ATESYNC.BAT
Normal file
@@ -0,0 +1,111 @@
|
||||
@ECHO OFF
|
||||
REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent)
|
||||
REM Version: 1.0
|
||||
REM Last modified: 2026-01-21
|
||||
REM
|
||||
REM Called from AUTOEXEC.BAT after network is up
|
||||
REM Usage: ATESYNC TS-27
|
||||
REM or: ATESYNC (uses MACHINE environment variable)
|
||||
|
||||
REM Get machine name from parameter or environment
|
||||
IF NOT "%1"=="" SET MACHINE=%1
|
||||
IF "%MACHINE%"=="" GOTO NO_MACHINE
|
||||
|
||||
REM Verify T: drive is available
|
||||
IF NOT EXIST T:\*.* GOTO NO_DRIVE
|
||||
|
||||
REM Verify machine folder exists on network
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE
|
||||
|
||||
:START_SYNC
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
ECHO ATESYNC: %MACHINE%
|
||||
ECHO ************************************************************
|
||||
ECHO.
|
||||
|
||||
REM Step 1: Upload test results FIRST (before downloading updates)
|
||||
REM This ensures local results are preserved before any updates
|
||||
ECHO [UPLOAD] Sending test results to network...
|
||||
CALL CTONW.BAT
|
||||
IF ERRORLEVEL 1 GOTO UPLOAD_ERROR
|
||||
ECHO [UPLOAD] Complete
|
||||
ECHO.
|
||||
|
||||
REM Step 2: Download software updates
|
||||
ECHO [DOWNLOAD] Getting updates from network...
|
||||
CALL NWTOC.BAT
|
||||
IF ERRORLEVEL 1 GOTO DOWNLOAD_ERROR
|
||||
ECHO [DOWNLOAD] Complete
|
||||
ECHO.
|
||||
|
||||
ECHO ************************************************************
|
||||
ECHO ATESYNC Complete: %MACHINE%
|
||||
ECHO ************************************************************
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:CREATE_MACHINE
|
||||
ECHO [INFO] Creating machine folder T:\%MACHINE%
|
||||
MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR
|
||||
MD T:\%MACHINE%\LOGS
|
||||
MD T:\%MACHINE%\LOGS\5BLOG
|
||||
MD T:\%MACHINE%\LOGS\7BLOG
|
||||
MD T:\%MACHINE%\LOGS\8BLOG
|
||||
MD T:\%MACHINE%\LOGS\DSCLOG
|
||||
MD T:\%MACHINE%\LOGS\HVLOG
|
||||
MD T:\%MACHINE%\LOGS\PWRLOG
|
||||
MD T:\%MACHINE%\LOGS\SCTLOG
|
||||
MD T:\%MACHINE%\LOGS\VASLOG
|
||||
MD T:\%MACHINE%\ProdSW
|
||||
MD T:\%MACHINE%\Reports
|
||||
ECHO [INFO] Machine folder created
|
||||
GOTO START_SYNC
|
||||
|
||||
:NO_MACHINE
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
ECHO [ERROR] MACHINE not set
|
||||
ECHO.
|
||||
ECHO Usage: ATESYNC TS-27
|
||||
ECHO or: SET MACHINE=TS-27
|
||||
ECHO ATESYNC
|
||||
ECHO ************************************************************
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_DRIVE
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO Run STARTNET.BAT first
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:MACHINE_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create T:\%MACHINE%
|
||||
ECHO Check network permissions
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:UPLOAD_ERROR
|
||||
ECHO.
|
||||
ECHO [WARNING] Upload may have had errors
|
||||
ECHO Check C:\ATE\CTONW.LOG
|
||||
PAUSE
|
||||
GOTO DOWNLOAD_ANYWAY
|
||||
|
||||
:DOWNLOAD_ANYWAY
|
||||
ECHO Continuing with download...
|
||||
CALL NWTOC.BAT
|
||||
GOTO END
|
||||
|
||||
:DOWNLOAD_ERROR
|
||||
ECHO.
|
||||
ECHO [WARNING] Download may have had errors
|
||||
ECHO Check C:\ATE\NWTOC.LOG
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
@@ -1,42 +1,85 @@
|
||||
@ECHO OFF
|
||||
REM Computer to Network - Upload local files to network
|
||||
REM Version: 2.5 - Added /I flag, removed 2>NUL (DOS 6.22)
|
||||
REM Last modified: 2026-01-20
|
||||
REM Computer to Network - Upload local test results to network
|
||||
REM Version: 3.1 - Added logging, machine verification
|
||||
REM Last modified: 2026-01-21
|
||||
REM
|
||||
REM IMPORTANT: Test results go to T:\%MACHINE%\LOGS\*LOG (machine-specific)
|
||||
REM This prevents overwriting data from other machines
|
||||
|
||||
REM Check MACHINE variable
|
||||
REM Verify MACHINE variable is set
|
||||
IF "%MACHINE%"=="" GOTO NO_MACHINE
|
||||
|
||||
REM Check T: drive
|
||||
REM Verify T: drive
|
||||
IF NOT EXIST T:\*.* GOTO NO_DRIVE
|
||||
|
||||
REM Verify machine folder exists
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER
|
||||
|
||||
REM Start logging
|
||||
ECHO CTONW.BAT v3.1 > C:\ATE\CTONW.LOG
|
||||
ECHO Machine: %MACHINE% >> C:\ATE\CTONW.LOG
|
||||
ECHO Date: %DATE% %TIME% >> C:\ATE\CTONW.LOG
|
||||
ECHO Target: T:\%MACHINE%\LOGS >> C:\ATE\CTONW.LOG
|
||||
ECHO. >> C:\ATE\CTONW.LOG
|
||||
|
||||
REM Display banner
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Upload: %MACHINE% to Network
|
||||
ECHO Upload Test Results: %MACHINE%
|
||||
ECHO Destination: T:\%MACHINE%\LOGS
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM Create target directories (ignore errors with >NUL)
|
||||
MD T:\%MACHINE% >NUL
|
||||
MD T:\%MACHINE%\ProdSW >NUL
|
||||
MD T:\%MACHINE%\LOGS >NUL
|
||||
|
||||
REM Copy batch files (XCOPY /Y /I = no prompts, assume directory)
|
||||
ECHO Copying C:\BAT\*.BAT to T:\%MACHINE%\ProdSW...
|
||||
XCOPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW /Y /I >NUL
|
||||
ECHO [OK] Batch files copied
|
||||
ECHO.
|
||||
|
||||
REM Check for ATE directory
|
||||
IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE
|
||||
|
||||
REM Copy ATE files
|
||||
ECHO Copying C:\ATE files to T:\%MACHINE%\ProdSW...
|
||||
IF EXIST C:\ATE\*.EXE XCOPY C:\ATE\*.EXE T:\%MACHINE%\ProdSW /Y /I >NUL
|
||||
IF EXIST C:\ATE\*.DAT XCOPY C:\ATE\*.DAT T:\%MACHINE%\ProdSW /Y /I >NUL
|
||||
IF EXIST C:\ATE\*.CFG XCOPY C:\ATE\*.CFG T:\%MACHINE%\ProdSW /Y /I >NUL
|
||||
ECHO [OK] ATE files copied
|
||||
REM Ensure target LOGS directories exist
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG
|
||||
IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG
|
||||
|
||||
ECHO [1/4] Uploading test logs...
|
||||
ECHO [1/4] Test logs: >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\5BLOG\*.* COPY C:\ATE\5BLOG\*.* T:\%MACHINE%\LOGS\5BLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\7BLOG\*.* COPY C:\ATE\7BLOG\*.* T:\%MACHINE%\LOGS\7BLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\8BLOG\*.* COPY C:\ATE\8BLOG\*.* T:\%MACHINE%\LOGS\8BLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\DSCLOG\*.* COPY C:\ATE\DSCLOG\*.* T:\%MACHINE%\LOGS\DSCLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\HVLOG\*.* COPY C:\ATE\HVLOG\*.* T:\%MACHINE%\LOGS\HVLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\PWRLOG\*.* COPY C:\ATE\PWRLOG\*.* T:\%MACHINE%\LOGS\PWRLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\SCTLOG\*.* COPY C:\ATE\SCTLOG\*.* T:\%MACHINE%\LOGS\SCTLOG >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\VASLOG\*.* COPY C:\ATE\VASLOG\*.* T:\%MACHINE%\LOGS\VASLOG >> C:\ATE\CTONW.LOG
|
||||
ECHO Done
|
||||
ECHO.
|
||||
|
||||
REM Ensure Reports directory exists
|
||||
IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports
|
||||
|
||||
ECHO [2/4] Uploading work-order reports...
|
||||
ECHO [2/4] Reports: >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\Reports\*.txt COPY C:\Reports\*.txt T:\%MACHINE%\Reports >> C:\ATE\CTONW.LOG
|
||||
ECHO Done
|
||||
ECHO.
|
||||
|
||||
ECHO [3/4] Uploading batch files...
|
||||
ECHO [3/4] Batch files: >> C:\ATE\CTONW.LOG
|
||||
IF NOT EXIST T:\%MACHINE%\ProdSW\*.* MD T:\%MACHINE%\ProdSW
|
||||
IF EXIST C:\BAT\*.BAT COPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW >> C:\ATE\CTONW.LOG
|
||||
ECHO Done
|
||||
ECHO.
|
||||
|
||||
ECHO [4/4] Uploading log file...
|
||||
ECHO [4/4] Log file: >> C:\ATE\CTONW.LOG
|
||||
IF EXIST C:\ATE\*.LOG COPY C:\ATE\*.LOG T:\%MACHINE% >> C:\ATE\CTONW.LOG
|
||||
ECHO Done
|
||||
ECHO.
|
||||
|
||||
ECHO Complete >> C:\ATE\CTONW.LOG
|
||||
GOTO DONE
|
||||
|
||||
:SKIP_ATE
|
||||
@@ -45,14 +88,18 @@ ECHO.
|
||||
|
||||
:DONE
|
||||
ECHO ==============================================================
|
||||
ECHO Upload Complete
|
||||
ECHO Upload Complete: %MACHINE%
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:NO_MACHINE
|
||||
ECHO.
|
||||
ECHO [ERROR] MACHINE variable not set
|
||||
ECHO Run DEPLOY.BAT first
|
||||
ECHO.
|
||||
ECHO This prevents uploading to wrong folder.
|
||||
ECHO Run DEPLOY.BAT or ATESYNC first.
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
@@ -62,4 +109,14 @@ ECHO Run C:\STARTNET.BAT first
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_FOLDER
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine folder T:\%MACHINE% not found
|
||||
ECHO.
|
||||
ECHO Run ATESYNC to create it, or check MACHINE variable.
|
||||
ECHO Current MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
**Project:** Dataforth DOS Update System
|
||||
**Client:** Dataforth
|
||||
**Duration:** ~2 hours
|
||||
**Status:** DSCDATA sync issue fixed, batch files updated
|
||||
**Duration:** ~4 hours
|
||||
**Status:** DSCDATA sync fixed, CTONW upload fix, ATESYNC orchestrator added
|
||||
|
||||
---
|
||||
|
||||
@@ -29,6 +29,29 @@
|
||||
4. **Git Checkpoint Created**
|
||||
- Commit: fd24a0c - "fix(dataforth-dos): DOS 6.22 batch file improvements and sync fix"
|
||||
|
||||
5. **Diagnosed Database Import Issue**
|
||||
- Test results weren't making it into testdatadb SQLite database
|
||||
- Root cause: CTONW.BAT was uploading to wrong location (ProdSW instead of LOGS)
|
||||
- testdatadb runs on AD2 port 3000, imports from LOGS folders
|
||||
|
||||
6. **Fixed CTONW.BAT (v3.0 -> v3.1)**
|
||||
- v3.0: Added proper upload to T:\%MACHINE%\LOGS\*LOG folders
|
||||
- v3.1: Added machine verification safeguards to prevent data overwriting
|
||||
- Now refuses to run if MACHINE variable not set
|
||||
- Logs machine name, date/time, and target path
|
||||
|
||||
7. **Created ATESYNC.BAT v1.0 (ARCHBAT Equivalent)**
|
||||
- Boot-time orchestrator for DOS machines
|
||||
- Calls CTONW (upload) then NWTOC (download)
|
||||
- Creates machine folder structure if missing
|
||||
- Based on TS-27 original ARCHBAT.BAT
|
||||
|
||||
8. **Analyzed TS-27 Golden Example**
|
||||
- TS-27 Backup/ORIG contains full machine backup
|
||||
- Compared original boot process to new setup
|
||||
- Original uses %1 parameter, new uses %MACHINE% environment variable
|
||||
- Original downloads from per-machine T:\%1\ProdSW, new uses centralized T:\COMMON\ProdSW
|
||||
|
||||
### Key Decisions Made
|
||||
|
||||
1. **Use COPY instead of XCOPY for all operations**
|
||||
@@ -165,6 +188,30 @@ Output (after fix):
|
||||
- Switched all XCOPY to COPY
|
||||
- Simplified output messages
|
||||
|
||||
**CTONW.BAT (v3.1)**
|
||||
- Path: `/Users/azcomputerguru/ClaudeTools/projects/dataforth-dos/batch-files/CTONW.BAT`
|
||||
- Deployed to: NAS `/data/test/COMMON/ProdSW/CTONW.BAT`
|
||||
- Deployed to: AD2 `C:\Shares\test\COMMON\ProdSW\CTONW.BAT`
|
||||
- Changes:
|
||||
- Uploads test results to T:\%MACHINE%\LOGS\*LOG (machine-specific)
|
||||
- Refuses to run if MACHINE variable not set (prevents overwriting)
|
||||
- Refuses to run if T:\%MACHINE% folder doesn't exist
|
||||
- Logs machine name, date/time, target path to C:\ATE\CTONW.LOG
|
||||
- Uploads 8 LOG folders: 5BLOG, 7BLOG, 8BLOG, DSCLOG, HVLOG, PWRLOG, SCTLOG, VASLOG
|
||||
- Also uploads Reports and batch files
|
||||
|
||||
**ATESYNC.BAT (v1.0) - NEW**
|
||||
- Path: `/Users/azcomputerguru/ClaudeTools/projects/dataforth-dos/batch-files/ATESYNC.BAT`
|
||||
- Deployed to: NAS and AD2
|
||||
- Purpose: Boot-time orchestrator (ARCHBAT equivalent)
|
||||
- Usage: `CALL ATESYNC TS-27` or `SET MACHINE=TS-27` then `CALL ATESYNC`
|
||||
- Features:
|
||||
- Accepts machine name as parameter or uses MACHINE environment variable
|
||||
- Creates machine folder structure if missing
|
||||
- Calls CTONW first (upload test results)
|
||||
- Then calls NWTOC (download updates)
|
||||
- Error handling with clear messages
|
||||
|
||||
**Sync-FromNAS.ps1 (on AD2)**
|
||||
- Path: `C:\Shares\test\scripts\Sync-FromNAS.ps1`
|
||||
- Changes: Added new section to sync Ate/ProdSW folder:
|
||||
@@ -211,11 +258,13 @@ if (Test-Path $ateProdSwPath) {
|
||||
### Immediate
|
||||
- [x] DSCDATA files synced to NAS (completed)
|
||||
- [x] Sync script updated to include Ate/ProdSW (completed)
|
||||
- [ ] Test on a DOS machine to verify files copy correctly
|
||||
- [x] CTONW.BAT fixed to upload to correct LOGS folders (completed)
|
||||
- [x] ATESYNC.BAT created as ARCHBAT equivalent (completed)
|
||||
- [ ] Test ATESYNC and CTONW on a DOS machine
|
||||
|
||||
### Future
|
||||
- [ ] Investigate test data database on AD2 port 3000 (user mentioned, couldn't access)
|
||||
- [ ] Document the testdatadb application if found
|
||||
- [x] Investigate testdatadb on AD2 port 3000 (found - Node.js/Express with SQLite)
|
||||
- [ ] Document the testdatadb application fully
|
||||
|
||||
---
|
||||
|
||||
@@ -224,9 +273,10 @@ if (Test-Path $ateProdSwPath) {
|
||||
### File Versions (Current)
|
||||
| File | Version | Date |
|
||||
|------|---------|------|
|
||||
| ATESYNC.BAT | 1.0 | 2026-01-21 |
|
||||
| CTONW.BAT | 3.1 | 2026-01-21 |
|
||||
| NWTOC.BAT | 3.5 | 2026-01-21 |
|
||||
| DEPLOY.BAT | 2.4 | 2026-01-21 |
|
||||
| CTONW.BAT | 2.5 | 2026-01-20 |
|
||||
| UPDATE.BAT | 2.3 | 2026-01-20 |
|
||||
| CHECKUPD.BAT | 1.3 | 2026-01-20 |
|
||||
|
||||
@@ -270,12 +320,40 @@ Admin deposits files on AD2
|
||||
|
||||
## Session Metrics
|
||||
|
||||
- **Session Duration:** ~2 hours
|
||||
- **Issues Fixed:** 1 major (DSCDATA sync)
|
||||
- **Files Modified:** 3 (NWTOC.BAT, DEPLOY.BAT, Sync-FromNAS.ps1)
|
||||
- **Git Commits:** 1
|
||||
- **Session Duration:** ~4 hours
|
||||
- **Issues Fixed:** 2 major (DSCDATA sync, CTONW upload path)
|
||||
- **Files Created:** 1 (ATESYNC.BAT)
|
||||
- **Files Modified:** 4 (NWTOC.BAT, DEPLOY.BAT, CTONW.BAT, Sync-FromNAS.ps1)
|
||||
- **Git Commits:** 2
|
||||
|
||||
---
|
||||
|
||||
**Session End:** 2026-01-21 13:50
|
||||
**Next Session:** Test NWTOC on DOS machine, investigate testdatadb
|
||||
## TS-27 Golden Example Analysis
|
||||
|
||||
TS-27 backup located at `/data/test/TS-27/Backup/ORIG/` contains:
|
||||
- Full machine backup (AUTOEXEC.BAT, CONFIG.SYS, all folders)
|
||||
- Original batch files in BAT/ folder
|
||||
- Original ATE folder structure
|
||||
|
||||
### Original Boot Sequence (TS-27)
|
||||
```
|
||||
AUTOEXEC.BAT
|
||||
-> CALL STARTNET.BAT (maps T: and X: drives)
|
||||
-> CALL ARCHBAT.BAT TS-27 X:
|
||||
-> CALL CTONW TS-27 (upload logs)
|
||||
-> CALL NWTOC TS-27 (download updates)
|
||||
-> CALL MENUX (main ATE menu)
|
||||
```
|
||||
|
||||
### Key Differences: Original vs New
|
||||
| Feature | Original (TS-27) | New Setup |
|
||||
|---------|------------------|-----------|
|
||||
| Machine ID | %1 parameter | %MACHINE% env var |
|
||||
| Orchestrator | ARCHBAT.BAT | ATESYNC.BAT |
|
||||
| Download source | T:\%1\ProdSW (per-machine) | T:\COMMON\ProdSW (centralized) |
|
||||
| Upload destination | T:\%1\LOGS (per-machine) | T:\%MACHINE%\LOGS (per-machine) |
|
||||
|
||||
---
|
||||
|
||||
**Session End:** 2026-01-21 16:00
|
||||
**Next Session:** Test ATESYNC and CTONW on DOS machine
|
||||
|
||||
Reference in New Issue
Block a user