116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
# Standard Init Script Templates Implementation Plan
|
|
|
|
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
|
|
|
**Goal:** Add standard CISD post-init script templates to the repository and document how TMS should reference them after deployment to `/home/tms/bin`.
|
|
|
|
**Architecture:** Keep the runtime command model unchanged in TMS. Add script templates under the repository so deployment has a clear source of truth, then point `application.yml.example` and `README.md` to the deployed absolute paths. Tests only verify the repository artifacts and expected command content, not real database or nginx execution.
|
|
|
|
**Tech Stack:** Shell scripts, Spring Boot config examples, JUnit 5 filesystem assertions
|
|
|
|
---
|
|
|
|
### Task 1: Add repository script templates
|
|
|
|
**Files:**
|
|
- Create: `/Users/waner/Work/CISD/文档/tms-framework/scripts/standard-init/apply_standard_db.sh`
|
|
- Create: `/Users/waner/Work/CISD/文档/tms-framework/scripts/standard-init/start_standard_apps.sh`
|
|
- Create: `/Users/waner/Work/CISD/文档/tms-framework/scripts/standard-init/start_standard_nginx.sh`
|
|
- Create: `/Users/waner/Work/CISD/文档/tms-framework/scripts/standard-init/check_standard_runtime.sh`
|
|
- Test: `/Users/waner/Work/CISD/文档/tms-framework/src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java`
|
|
|
|
**Step 1: Write the failing test**
|
|
|
|
Add tests that assert the four script files exist in `scripts/standard-init/` and contain the expected key commands:
|
|
- DB script references `SCHEMA-DDL.sql`, `CMEP.sql`, `UP-ORG-INFO.sql`
|
|
- App start script references `start_cmsp.sh` and `start_cmtp.sh`
|
|
- Nginx start script references `/usr/local/nginx/sbin/nginx`
|
|
- Post-check script references CMSP/CMTP/nginx process checks and `organization.json`
|
|
|
|
**Step 2: Run test to verify it fails**
|
|
|
|
Run: `mvn -q -Dtest=ConfigurableInitStepExecutorTest#shouldExposeStandardInitScriptTemplates test`
|
|
Expected: FAIL because the scripts do not exist yet.
|
|
|
|
**Step 3: Write minimal implementation**
|
|
|
|
Create the four scripts with:
|
|
- `#!/bin/bash`
|
|
- `set -euo pipefail`
|
|
- environment variable placeholders for preset credentials where needed
|
|
- comments limited to critical operational assumptions
|
|
|
|
**Step 4: Run test to verify it passes**
|
|
|
|
Run: `mvn -q -Dtest=ConfigurableInitStepExecutorTest#shouldExposeStandardInitScriptTemplates test`
|
|
Expected: PASS
|
|
|
|
**Step 5: Commit**
|
|
|
|
```bash
|
|
git add scripts/standard-init src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java
|
|
git commit -m "feat: add standard init script templates"
|
|
```
|
|
|
|
### Task 2: Wire deployment-facing config examples
|
|
|
|
**Files:**
|
|
- Modify: `/Users/waner/Work/CISD/文档/tms-framework/config/application.yml.example`
|
|
- Modify: `/Users/waner/Work/CISD/文档/tms-framework/README.md`
|
|
- Test: `/Users/waner/Work/CISD/文档/tms-framework/src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java`
|
|
|
|
**Step 1: Write the failing test**
|
|
|
|
Add a test that asserts:
|
|
- `application.yml.example` points the four command properties to `/home/tms/bin/*.sh`
|
|
- `README.md` documents the repository source path `scripts/standard-init/` and the target deploy path `/home/tms/bin`
|
|
|
|
**Step 2: Run test to verify it fails**
|
|
|
|
Run: `mvn -q -Dtest=ConfigurableInitStepExecutorTest#shouldDocumentStandardInitScriptTemplateDeployment test`
|
|
Expected: FAIL because the docs/config are not updated yet.
|
|
|
|
**Step 3: Write minimal implementation**
|
|
|
|
Update example config and README with:
|
|
- exact deployed command values
|
|
- copy/deploy note from `scripts/standard-init/` to `/home/tms/bin`
|
|
- required environment variables for DB script
|
|
|
|
**Step 4: Run test to verify it passes**
|
|
|
|
Run: `mvn -q -Dtest=ConfigurableInitStepExecutorTest#shouldDocumentStandardInitScriptTemplateDeployment test`
|
|
Expected: PASS
|
|
|
|
**Step 5: Commit**
|
|
|
|
```bash
|
|
git add config/application.yml.example README.md src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java
|
|
git commit -m "docs: wire standard init script template deployment"
|
|
```
|
|
|
|
### Task 3: Final verification
|
|
|
|
**Files:**
|
|
- Verify only
|
|
|
|
**Step 1: Run focused tests**
|
|
|
|
Run: `mvn -q -Dtest=ConfigurableInitStepExecutorTest test`
|
|
Expected: PASS
|
|
|
|
**Step 2: Run init test suite**
|
|
|
|
Run: `mvn -q -Dtest=InitServiceTest,ConfigurableInitStepExecutorTest test`
|
|
Expected: PASS
|
|
|
|
**Step 3: Run compile**
|
|
|
|
Run: `mvn -q -DskipTests compile`
|
|
Expected: PASS
|
|
|
|
**Step 4: Review git diff**
|
|
|
|
Run: `git diff -- scripts/standard-init config/application.yml.example README.md src/test/java/com/cisd/tms/modules/init/executor/ConfigurableInitStepExecutorTest.java`
|
|
Expected: only script templates, config example, README, and tests changed.
|