@k2works/claude-code-booster 0.22.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/assets/.claude/README.md +96 -80
- package/lib/assets/.claude/SKILLS_TEMPLATE.md +100 -0
- package/lib/assets/.claude/settings.local.json +2 -8
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +87 -0
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +80 -0
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +88 -0
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +91 -0
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +91 -0
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +87 -0
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +102 -0
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +87 -0
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +86 -0
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +87 -0
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +115 -0
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +89 -0
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +79 -0
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +98 -0
- package/lib/assets/.claude/skills/managing-docs/SKILL.md +195 -0
- package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +77 -0
- package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +80 -0
- package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +84 -0
- package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +75 -0
- package/lib/assets/.claude/skills/managing-operations/SKILL.md +156 -0
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +103 -0
- package/lib/assets/.claude/{commands/dev.md → skills/orchestrating-development/SKILL.md} +42 -49
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +222 -0
- package/lib/assets/.claude/{commands/plan-github.md → skills/syncing-github-project/SKILL.md} +78 -159
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +164 -0
- package/lib/assets/.mcp.json +12 -0
- package/lib/assets/CLAUDE.md +71 -230
- package/lib/assets/README.md +38 -3
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +442 -0
- package/lib/assets/docs/reference//350/250/200/350/252/236/345/210/245/351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +8 -7
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +205 -0
- package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/350/250/210/347/224/273.md +280 -0
- package/lib/assets/ops/scripts/mkdocs.js +71 -105
- package/lib/assets/ops/scripts/release.js +431 -0
- package/lib/assets/ops/scripts/ssh.js +190 -0
- package/package.json +1 -1
- package/lib/assets/.claude/.mcp.json +0 -45
- package/lib/assets/.claude/COMMAND_TEMPLATE.md +0 -122
- package/lib/assets/.claude/commands/adr.md +0 -177
- package/lib/assets/.claude/commands/analysis-architecture.md +0 -98
- package/lib/assets/.claude/commands/analysis-data-model.md +0 -94
- package/lib/assets/.claude/commands/analysis-domain-model.md +0 -101
- package/lib/assets/.claude/commands/analysis-non-functional.md +0 -103
- package/lib/assets/.claude/commands/analysis-operation.md +0 -104
- package/lib/assets/.claude/commands/analysis-requirements.md +0 -100
- package/lib/assets/.claude/commands/analysis-tech-stack.md +0 -113
- package/lib/assets/.claude/commands/analysis-test-strategy.md +0 -101
- package/lib/assets/.claude/commands/analysis-ui-design.md +0 -100
- package/lib/assets/.claude/commands/analysis-usecases.md +0 -100
- package/lib/assets/.claude/commands/analysis.md +0 -103
- package/lib/assets/.claude/commands/dev-backend.md +0 -144
- package/lib/assets/.claude/commands/dev-frontend.md +0 -126
- package/lib/assets/.claude/commands/docs.md +0 -335
- package/lib/assets/.claude/commands/git-commit.md +0 -47
- package/lib/assets/.claude/commands/kill.md +0 -109
- package/lib/assets/.claude/commands/ops.md +0 -508
- package/lib/assets/.claude/commands/plan.md +0 -238
- package/lib/assets/.claude/commands/progress.md +0 -245
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# リリース計画 - [プロジェクト名]
|
|
2
|
+
|
|
3
|
+
## 概要
|
|
4
|
+
|
|
5
|
+
本ドキュメントは、[プロジェクト名]のリリース計画を定義します。
|
|
6
|
+
|
|
7
|
+
### プロジェクト情報
|
|
8
|
+
|
|
9
|
+
| 項目 | 内容 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| **プロジェクト名** | [プロジェクト名] |
|
|
12
|
+
| **目的** | [プロジェクトの目的] |
|
|
13
|
+
| **対象ユーザー** | [対象ユーザー] |
|
|
14
|
+
| **開発チーム** | [チーム構成] |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 満足条件
|
|
19
|
+
|
|
20
|
+
### スコープ
|
|
21
|
+
|
|
22
|
+
[リリース戦略の説明]
|
|
23
|
+
|
|
24
|
+
| フェーズ | 内容 | ユースケース数 |
|
|
25
|
+
|---------|------|---------------|
|
|
26
|
+
| Phase 1 | [内容] | X UC |
|
|
27
|
+
| Phase 2 | [内容] | X UC |
|
|
28
|
+
| **合計** | | **XX UC** |
|
|
29
|
+
|
|
30
|
+
### スケジュール
|
|
31
|
+
|
|
32
|
+
- **開発期間**: [期間]
|
|
33
|
+
- **イテレーション**: [イテレーション期間] × [イテレーション数]
|
|
34
|
+
- **リリース**: [リリース戦略]
|
|
35
|
+
|
|
36
|
+
### リソース
|
|
37
|
+
|
|
38
|
+
- **開発者**: [人数]
|
|
39
|
+
- **想定稼働時間**: [時間/週]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## ユーザーストーリー一覧とストーリーポイント
|
|
44
|
+
|
|
45
|
+
### 優先順位マトリックス
|
|
46
|
+
|
|
47
|
+
4 軸評価で優先順位を決定:
|
|
48
|
+
|
|
49
|
+
1. **金銭価値(BV)**: ビジネス価値
|
|
50
|
+
2. **コスト(C)**: 開発コスト
|
|
51
|
+
3. **知識習得(KA)**: 技術的学習価値
|
|
52
|
+
4. **リスク軽減(RR)**: リスク軽減効果
|
|
53
|
+
|
|
54
|
+
### Phase 1: [フェーズ名](イテレーション X-X)
|
|
55
|
+
|
|
56
|
+
| ID | ユーザーストーリー | SP | BV | C | KA | RR | 優先度 |
|
|
57
|
+
|----|-------------------|----|----|---|----|----|--------|
|
|
58
|
+
| US-XXX | [ストーリー名] | X | 高/中/低 | 高/中/低 | 高/中/低 | 高/中/低 | 必須/中/低 |
|
|
59
|
+
| **合計** | | **XX** | | | | | |
|
|
60
|
+
|
|
61
|
+
### Phase 2: [フェーズ名](イテレーション X-X)
|
|
62
|
+
|
|
63
|
+
| ID | ユーザーストーリー | SP | BV | C | KA | RR | 優先度 |
|
|
64
|
+
|----|-------------------|----|----|---|----|----|--------|
|
|
65
|
+
| US-XXX | [ストーリー名] | X | 高/中/低 | 高/中/低 | 高/中/低 | 高/中/低 | 必須/中/低 |
|
|
66
|
+
| **合計** | | **XX** | | | | | |
|
|
67
|
+
|
|
68
|
+
### 全体サマリー
|
|
69
|
+
|
|
70
|
+
| フェーズ | ストーリーポイント | イテレーション |
|
|
71
|
+
|---------|-------------------|---------------|
|
|
72
|
+
| Phase 1 | XX SP | X-X |
|
|
73
|
+
| Phase 2 | XX SP | X-X |
|
|
74
|
+
| **合計** | **XX SP** | X イテレーション |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## ベロシティ見積もり
|
|
79
|
+
|
|
80
|
+
### 初期ベロシティ推定
|
|
81
|
+
|
|
82
|
+
| 項目 | 値 |
|
|
83
|
+
|------|-----|
|
|
84
|
+
| **イテレーション期間** | X 週間 |
|
|
85
|
+
| **チーム規模** | X 名 |
|
|
86
|
+
| **想定ベロシティ** | XX-XX SP/イテレーション |
|
|
87
|
+
| **バッファ係数** | 0.8(20%バッファ) |
|
|
88
|
+
| **実効ベロシティ** | XX-XX SP/イテレーション |
|
|
89
|
+
|
|
90
|
+
### ベロシティ検証計画
|
|
91
|
+
|
|
92
|
+
- [検証方法の記述]
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 段階的リリース戦略
|
|
97
|
+
|
|
98
|
+
### リリーススケジュール
|
|
99
|
+
|
|
100
|
+
#### 計画スケジュール
|
|
101
|
+
|
|
102
|
+
```mermaid
|
|
103
|
+
gantt
|
|
104
|
+
title 計画スケジュール
|
|
105
|
+
dateFormat YYYY-MM-DD
|
|
106
|
+
section Phase 1
|
|
107
|
+
IT1 [ゴール] :crit, p1-1, YYYY-MM-DD, 14d
|
|
108
|
+
IT2 [ゴール] :crit, p1-2, after p1-1, 14d
|
|
109
|
+
Release X.0 :milestone, m1, after p1-2, 0d
|
|
110
|
+
section Phase 2
|
|
111
|
+
IT3 [ゴール] :crit, p2-1, after p1-2, 14d
|
|
112
|
+
IT4 [ゴール] :crit, p2-2, after p2-1, 14d
|
|
113
|
+
Release X.1 :milestone, m2, after p2-2, 0d
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### 実績スケジュール
|
|
117
|
+
|
|
118
|
+
```mermaid
|
|
119
|
+
gantt
|
|
120
|
+
title 実績スケジュール
|
|
121
|
+
dateFormat YYYY-MM-DD
|
|
122
|
+
section Phase 1
|
|
123
|
+
IT1 [ゴール] (Xd) :done, a1, YYYY-MM-DD, Xd
|
|
124
|
+
IT2 [ゴール] (Xd) :done, a2, after a1, Xd
|
|
125
|
+
Release X.0 :milestone, ma1, after a2, 0d
|
|
126
|
+
section Phase 2
|
|
127
|
+
IT3 [ゴール] (Xd) :done, a3, after a2, Xd
|
|
128
|
+
IT4 [ゴール] (Xd) :done, a4, after a3, Xd
|
|
129
|
+
Release X.1 :milestone, ma2, after a4, 0d
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### リリース内容
|
|
133
|
+
|
|
134
|
+
#### Release X.0(Phase 1 完了): [リリース名]
|
|
135
|
+
|
|
136
|
+
**目標**: [リリースの目標]
|
|
137
|
+
|
|
138
|
+
**含まれる機能**:
|
|
139
|
+
|
|
140
|
+
- [機能1]
|
|
141
|
+
- [機能2]
|
|
142
|
+
- [機能3]
|
|
143
|
+
|
|
144
|
+
**リリース条件**:
|
|
145
|
+
|
|
146
|
+
- [ ] 全ユニットテストがパス
|
|
147
|
+
- [ ] E2E テストがパス
|
|
148
|
+
- [ ] セキュリティレビュー完了
|
|
149
|
+
|
|
150
|
+
#### Release X.1(Phase 2 完了): [リリース名]
|
|
151
|
+
|
|
152
|
+
**目標**: [リリースの目標]
|
|
153
|
+
|
|
154
|
+
**含まれる機能**:
|
|
155
|
+
|
|
156
|
+
- [機能1]
|
|
157
|
+
- [機能2]
|
|
158
|
+
|
|
159
|
+
**リリース条件**:
|
|
160
|
+
|
|
161
|
+
- [ ] 全テストがパス
|
|
162
|
+
- [ ] パフォーマンステスト完了
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## バッファ戦略
|
|
167
|
+
|
|
168
|
+
### フィーチャバッファ
|
|
169
|
+
|
|
170
|
+
| フェーズ | 計画 SP | バッファ(30%) | 実効 SP |
|
|
171
|
+
|---------|---------|-----------------|---------|
|
|
172
|
+
| Phase 1 | XX | X | XX |
|
|
173
|
+
| Phase 2 | XX | X | XX |
|
|
174
|
+
|
|
175
|
+
### スケジュールバッファ
|
|
176
|
+
|
|
177
|
+
- **予備イテレーション**: [バッファ期間]
|
|
178
|
+
- **全体バッファ**: [バッファ率]
|
|
179
|
+
|
|
180
|
+
### バッファ消費ルール
|
|
181
|
+
|
|
182
|
+
1. フィーチャバッファを先に消費
|
|
183
|
+
2. 低優先度ストーリーを後回し
|
|
184
|
+
3. スケジュールバッファは最後の手段
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## イテレーション計画概要
|
|
189
|
+
|
|
190
|
+
### イテレーション X(Week X-X)
|
|
191
|
+
|
|
192
|
+
**ゴール**: [イテレーションのゴール]
|
|
193
|
+
|
|
194
|
+
**主なタスク**:
|
|
195
|
+
|
|
196
|
+
- [ ] [タスク1]
|
|
197
|
+
- [ ] [タスク2]
|
|
198
|
+
- [ ] [タスク3]
|
|
199
|
+
|
|
200
|
+
**目標 SP**: XX
|
|
201
|
+
|
|
202
|
+
詳細は [iteration_plan-X.md](./iteration_plan-X.md) を参照。
|
|
203
|
+
|
|
204
|
+
### イテレーション X+1(Week X-X)
|
|
205
|
+
|
|
206
|
+
**ゴール**: [イテレーションのゴール]
|
|
207
|
+
|
|
208
|
+
**主なタスク**:
|
|
209
|
+
|
|
210
|
+
- [ ] [タスク1]
|
|
211
|
+
- [ ] [タスク2]
|
|
212
|
+
- [ ] [タスク3]
|
|
213
|
+
|
|
214
|
+
**目標 SP**: XX
|
|
215
|
+
|
|
216
|
+
詳細は [iteration_plan-X.md](./iteration_plan-X.md) を参照。
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## リスク管理
|
|
221
|
+
|
|
222
|
+
### 技術リスク
|
|
223
|
+
|
|
224
|
+
| リスク | 影響度 | 発生確率 | 対策 |
|
|
225
|
+
|--------|--------|----------|------|
|
|
226
|
+
| [リスク1] | 高/中/低 | 高/中/低 | [対策] |
|
|
227
|
+
| [リスク2] | 高/中/低 | 高/中/低 | [対策] |
|
|
228
|
+
|
|
229
|
+
### スケジュールリスク
|
|
230
|
+
|
|
231
|
+
| リスク | 影響度 | 発生確率 | 対策 |
|
|
232
|
+
|--------|--------|----------|------|
|
|
233
|
+
| [リスク1] | 高/中/低 | 高/中/低 | [対策] |
|
|
234
|
+
| [リスク2] | 高/中/低 | 高/中/低 | [対策] |
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 進捗管理
|
|
239
|
+
|
|
240
|
+
### メトリクス
|
|
241
|
+
|
|
242
|
+
| メトリクス | 目標 |
|
|
243
|
+
|-----------|------|
|
|
244
|
+
| ベロシティ | XX-XX SP/イテレーション |
|
|
245
|
+
| テストカバレッジ | 80% 以上 |
|
|
246
|
+
| バグ密度 | X.X 件/SP 以下 |
|
|
247
|
+
| 予定達成率 | 90% 以上 |
|
|
248
|
+
|
|
249
|
+
### 進捗状況
|
|
250
|
+
|
|
251
|
+
| イテレーション | 計画 SP | 実績 SP | 達成率 | 状態 |
|
|
252
|
+
|---------------|---------|---------|--------|------|
|
|
253
|
+
| X | XX | - | - | 未着手 |
|
|
254
|
+
| X+1 | XX | - | - | 未着手 |
|
|
255
|
+
|
|
256
|
+
### バーンダウンチャート
|
|
257
|
+
|
|
258
|
+
```mermaid
|
|
259
|
+
xychart-beta
|
|
260
|
+
title "リリースバーンダウン(計画 vs 実績)"
|
|
261
|
+
x-axis ["開始", "ITX", "ITX+1"]
|
|
262
|
+
y-axis "残 SP" 0 --> 100
|
|
263
|
+
line "計画" [100, 50, 0]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 次のステップ
|
|
269
|
+
|
|
270
|
+
1. [次のアクション1]
|
|
271
|
+
2. [次のアクション2]
|
|
272
|
+
3. [次のアクション3]
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 更新履歴
|
|
277
|
+
|
|
278
|
+
| 日付 | 更新内容 | 更新者 |
|
|
279
|
+
|------|---------|--------|
|
|
280
|
+
| YYYY-MM-DD | 初版作成 | - |
|
|
@@ -1,114 +1,80 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
import {execSync} from 'child_process';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* @type {boolean} Windows環境かどうかをチェック
|
|
9
|
-
*/
|
|
10
7
|
const isWindows = process.platform === 'win32';
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// MkDocs serve task
|
|
25
|
-
gulp.task('mkdocs:serve', (done) => {
|
|
26
|
-
try {
|
|
27
|
-
console.log('Starting MkDocs server using Docker Compose...');
|
|
28
|
-
|
|
29
|
-
// Normalize DOCKER_HOST on Windows if it's incorrect
|
|
30
|
-
const env = { ...process.env };
|
|
31
|
-
if (isWindows && env.DOCKER_HOST === 'npipe://./pipe/docker_engine') {
|
|
32
|
-
env.DOCKER_HOST = 'npipe:////./pipe/docker_engine';
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Execute docker-compose up command to start mkdocs service
|
|
36
|
-
execSync('docker compose up -d mkdocs', {stdio: 'inherit', env});
|
|
37
|
-
|
|
38
|
-
console.log('\nMkDocs server started successfully!');
|
|
39
|
-
console.log('Documentation is now available at http://localhost:8000');
|
|
40
|
-
console.log('Press Ctrl+C to stop the server when done.');
|
|
41
|
-
|
|
42
|
-
done();
|
|
43
|
-
} catch (error) {
|
|
44
|
-
console.error('Error starting MkDocs server:', error.message);
|
|
45
|
-
done(error);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
// MkDocs build task
|
|
50
|
-
gulp.task('mkdocs:build', (done) => {
|
|
51
|
-
try {
|
|
52
|
-
console.log('Building MkDocs documentation...');
|
|
53
|
-
|
|
54
|
-
// Normalize DOCKER_HOST on Windows if it's incorrect
|
|
55
|
-
const env = { ...process.env };
|
|
56
|
-
if (isWindows && env.DOCKER_HOST === 'npipe://./pipe/docker_engine') {
|
|
57
|
-
env.DOCKER_HOST = 'npipe:////./pipe/docker_engine';
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Remove existing site directory before building
|
|
61
|
-
removeSiteDirectory();
|
|
62
|
-
|
|
63
|
-
// Execute docker-compose run command to build mkdocs documentation
|
|
64
|
-
execSync('docker compose run --rm mkdocs mkdocs build', {stdio: 'inherit', env});
|
|
65
|
-
|
|
66
|
-
console.log('\nMkDocs documentation built successfully!');
|
|
67
|
-
|
|
68
|
-
done();
|
|
69
|
-
} catch (error) {
|
|
70
|
-
console.error('Error building MkDocs documentation:', error.message);
|
|
71
|
-
done(error);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
// MkDocs stop task
|
|
76
|
-
gulp.task('mkdocs:stop', (done) => {
|
|
77
|
-
try {
|
|
78
|
-
console.log('Stopping MkDocs server...');
|
|
79
|
-
|
|
80
|
-
// Normalize DOCKER_HOST on Windows if it's incorrect
|
|
81
|
-
const env = { ...process.env };
|
|
82
|
-
if (isWindows && env.DOCKER_HOST === 'npipe://./pipe/docker_engine') {
|
|
83
|
-
env.DOCKER_HOST = 'npipe:////./pipe/docker_engine';
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Execute docker-compose down command to stop mkdocs service
|
|
87
|
-
execSync('docker compose down', {stdio: 'inherit', env});
|
|
88
|
-
|
|
89
|
-
console.log('MkDocs server stopped successfully!');
|
|
90
|
-
|
|
91
|
-
done();
|
|
92
|
-
} catch (error) {
|
|
93
|
-
console.error('Error stopping MkDocs server:', error.message);
|
|
94
|
-
done(error);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// MkDocs open task
|
|
99
|
-
gulp.task('mkdocs:open', (done) => {
|
|
100
|
-
try {
|
|
101
|
-
console.log('Opening MkDocs server...');
|
|
102
|
-
|
|
103
|
-
const command = isWindows ? 'start http://localhost:8000' : 'open http://localhost:8000';
|
|
104
|
-
execSync(command, {stdio: 'inherit'});
|
|
9
|
+
/**
|
|
10
|
+
* Windows 環境で DOCKER_HOST を正規化した環境変数を返す
|
|
11
|
+
* @returns {NodeJS.ProcessEnv}
|
|
12
|
+
*/
|
|
13
|
+
function dockerEnv() {
|
|
14
|
+
const env = { ...process.env };
|
|
15
|
+
if (isWindows && env.DOCKER_HOST === 'npipe://./pipe/docker_engine') {
|
|
16
|
+
env.DOCKER_HOST = 'npipe:////./pipe/docker_engine';
|
|
17
|
+
}
|
|
18
|
+
return env;
|
|
19
|
+
}
|
|
105
20
|
|
|
106
|
-
|
|
21
|
+
/**
|
|
22
|
+
* docker compose コマンドを実行
|
|
23
|
+
* @param {string} args - docker compose に渡す引数
|
|
24
|
+
*/
|
|
25
|
+
function dockerCompose(args) {
|
|
26
|
+
execSync(`docker compose ${args}`, { stdio: 'inherit', env: dockerEnv() });
|
|
27
|
+
}
|
|
107
28
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
29
|
+
/**
|
|
30
|
+
* MkDocs タスクを gulp に登録する
|
|
31
|
+
* @param {import('gulp').Gulp} gulp - Gulp インスタンス
|
|
32
|
+
*/
|
|
33
|
+
export default function (gulp) {
|
|
34
|
+
gulp.task('mkdocs:serve', (done) => {
|
|
35
|
+
try {
|
|
36
|
+
console.log('Starting MkDocs server...');
|
|
37
|
+
dockerCompose('up -d mkdocs');
|
|
38
|
+
console.log('\nDocumentation is available at http://localhost:8000');
|
|
39
|
+
done();
|
|
40
|
+
} catch (error) {
|
|
41
|
+
done(error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
gulp.task('mkdocs:build', (done) => {
|
|
46
|
+
try {
|
|
47
|
+
console.log('Building MkDocs documentation...');
|
|
48
|
+
const siteDir = path.join(process.cwd(), 'site');
|
|
49
|
+
if (fs.existsSync(siteDir)) {
|
|
50
|
+
fs.rmSync(siteDir, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
dockerCompose('run --rm mkdocs mkdocs build');
|
|
53
|
+
console.log('\nBuild completed.');
|
|
54
|
+
done();
|
|
55
|
+
} catch (error) {
|
|
56
|
+
done(error);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
gulp.task('mkdocs:stop', (done) => {
|
|
61
|
+
try {
|
|
62
|
+
console.log('Stopping MkDocs server...');
|
|
63
|
+
dockerCompose('down');
|
|
64
|
+
console.log('Stopped.');
|
|
65
|
+
done();
|
|
66
|
+
} catch (error) {
|
|
67
|
+
done(error);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
gulp.task('mkdocs:open', (done) => {
|
|
72
|
+
try {
|
|
73
|
+
const command = isWindows ? 'start http://localhost:8000' : 'open http://localhost:8000';
|
|
74
|
+
execSync(command, { stdio: 'inherit' });
|
|
75
|
+
done();
|
|
76
|
+
} catch (error) {
|
|
77
|
+
done(error);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|