colyn-cli 3.1.4
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/README-en.md +85 -0
- package/README.md +85 -0
- package/bin/colyn +25 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +116 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +6 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.helpers.d.ts +48 -0
- package/dist/commands/add.helpers.d.ts.map +1 -0
- package/dist/commands/add.helpers.js +251 -0
- package/dist/commands/add.helpers.js.map +1 -0
- package/dist/commands/add.js +286 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/checkout.d.ts +16 -0
- package/dist/commands/checkout.d.ts.map +1 -0
- package/dist/commands/checkout.js +428 -0
- package/dist/commands/checkout.js.map +1 -0
- package/dist/commands/completion.d.ts +10 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +380 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +11 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +338 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/index.d.ts +10 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +41 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/info.d.ts +6 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +374 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.handlers.d.ts +27 -0
- package/dist/commands/init.handlers.d.ts.map +1 -0
- package/dist/commands/init.handlers.js +314 -0
- package/dist/commands/init.handlers.js.map +1 -0
- package/dist/commands/init.helpers.d.ts +42 -0
- package/dist/commands/init.helpers.d.ts.map +1 -0
- package/dist/commands/init.helpers.js +275 -0
- package/dist/commands/init.helpers.js.map +1 -0
- package/dist/commands/init.js +61 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +6 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.helpers.d.ts +32 -0
- package/dist/commands/install.helpers.d.ts.map +1 -0
- package/dist/commands/install.helpers.js +124 -0
- package/dist/commands/install.helpers.js.map +1 -0
- package/dist/commands/install.js +104 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list-project.d.ts +11 -0
- package/dist/commands/list-project.d.ts.map +1 -0
- package/dist/commands/list-project.js +260 -0
- package/dist/commands/list-project.js.map +1 -0
- package/dist/commands/list.d.ts +15 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.helpers.d.ts +50 -0
- package/dist/commands/list.helpers.d.ts.map +1 -0
- package/dist/commands/list.helpers.js +143 -0
- package/dist/commands/list.helpers.js.map +1 -0
- package/dist/commands/list.js +530 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/merge.d.ts +6 -0
- package/dist/commands/merge.d.ts.map +1 -0
- package/dist/commands/merge.helpers.d.ts +74 -0
- package/dist/commands/merge.helpers.d.ts.map +1 -0
- package/dist/commands/merge.helpers.js +307 -0
- package/dist/commands/merge.helpers.js.map +1 -0
- package/dist/commands/merge.js +260 -0
- package/dist/commands/merge.js.map +1 -0
- package/dist/commands/release.d.ts +6 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.helpers.d.ts +61 -0
- package/dist/commands/release.helpers.d.ts.map +1 -0
- package/dist/commands/release.helpers.js +277 -0
- package/dist/commands/release.helpers.js.map +1 -0
- package/dist/commands/release.js +127 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/remove.d.ts +6 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.helpers.d.ts +59 -0
- package/dist/commands/remove.helpers.d.ts.map +1 -0
- package/dist/commands/remove.helpers.js +190 -0
- package/dist/commands/remove.helpers.js.map +1 -0
- package/dist/commands/remove.js +137 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/repair.d.ts +6 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.helpers.d.ts +5 -0
- package/dist/commands/repair.helpers.d.ts.map +1 -0
- package/dist/commands/repair.helpers.js +499 -0
- package/dist/commands/repair.helpers.js.map +1 -0
- package/dist/commands/repair.js +28 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +116 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/system-integration.d.ts +6 -0
- package/dist/commands/system-integration.d.ts.map +1 -0
- package/dist/commands/system-integration.helpers.d.ts +70 -0
- package/dist/commands/system-integration.helpers.d.ts.map +1 -0
- package/dist/commands/system-integration.helpers.js +313 -0
- package/dist/commands/system-integration.helpers.js.map +1 -0
- package/dist/commands/system-integration.js +132 -0
- package/dist/commands/system-integration.js.map +1 -0
- package/dist/commands/tmux.d.ts +11 -0
- package/dist/commands/tmux.d.ts.map +1 -0
- package/dist/commands/tmux.js +500 -0
- package/dist/commands/tmux.js.map +1 -0
- package/dist/commands/todo.d.ts +6 -0
- package/dist/commands/todo.d.ts.map +1 -0
- package/dist/commands/todo.helpers.d.ts +50 -0
- package/dist/commands/todo.helpers.d.ts.map +1 -0
- package/dist/commands/todo.helpers.js +297 -0
- package/dist/commands/todo.helpers.js.map +1 -0
- package/dist/commands/todo.js +579 -0
- package/dist/commands/todo.js.map +1 -0
- package/dist/commands/update.d.ts +18 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.helpers.d.ts +89 -0
- package/dist/commands/update.helpers.d.ts.map +1 -0
- package/dist/commands/update.helpers.js +335 -0
- package/dist/commands/update.helpers.js.map +1 -0
- package/dist/commands/update.js +187 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/core/config-loader.d.ts +47 -0
- package/dist/core/config-loader.d.ts.map +1 -0
- package/dist/core/config-loader.js +188 -0
- package/dist/core/config-loader.js.map +1 -0
- package/dist/core/config-merger.d.ts +29 -0
- package/dist/core/config-merger.d.ts.map +1 -0
- package/dist/core/config-merger.js +100 -0
- package/dist/core/config-merger.js.map +1 -0
- package/dist/core/config-migration.d.ts +64 -0
- package/dist/core/config-migration.d.ts.map +1 -0
- package/dist/core/config-migration.js +340 -0
- package/dist/core/config-migration.js.map +1 -0
- package/dist/core/config-new.d.ts +19 -0
- package/dist/core/config-new.d.ts.map +1 -0
- package/dist/core/config-new.js +58 -0
- package/dist/core/config-new.js.map +1 -0
- package/dist/core/config-schema.d.ts +221 -0
- package/dist/core/config-schema.d.ts.map +1 -0
- package/dist/core/config-schema.js +168 -0
- package/dist/core/config-schema.js.map +1 -0
- package/dist/core/config.d.ts +55 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +143 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dev-server.d.ts +29 -0
- package/dist/core/dev-server.d.ts.map +1 -0
- package/dist/core/dev-server.js +54 -0
- package/dist/core/dev-server.js.map +1 -0
- package/dist/core/discovery.d.ts +51 -0
- package/dist/core/discovery.d.ts.map +1 -0
- package/dist/core/discovery.js +247 -0
- package/dist/core/discovery.js.map +1 -0
- package/dist/core/env.d.ts +13 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +75 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/git.d.ts +31 -0
- package/dist/core/git.d.ts.map +1 -0
- package/dist/core/git.js +56 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/paths.d.ts +86 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +256 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/tmux-config.d.ts +174 -0
- package/dist/core/tmux-config.d.ts.map +1 -0
- package/dist/core/tmux-config.js +545 -0
- package/dist/core/tmux-config.js.map +1 -0
- package/dist/core/tmux-config.legacy.d.ts +243 -0
- package/dist/core/tmux-config.legacy.d.ts.map +1 -0
- package/dist/core/tmux-config.legacy.js +896 -0
- package/dist/core/tmux-config.legacy.js.map +1 -0
- package/dist/core/tmux.d.ts +214 -0
- package/dist/core/tmux.d.ts.map +1 -0
- package/dist/core/tmux.js +712 -0
- package/dist/core/tmux.js.map +1 -0
- package/dist/core/toolchain-resolver.d.ts +51 -0
- package/dist/core/toolchain-resolver.d.ts.map +1 -0
- package/dist/core/toolchain-resolver.js +364 -0
- package/dist/core/toolchain-resolver.js.map +1 -0
- package/dist/core/worktree-status.d.ts +20 -0
- package/dist/core/worktree-status.d.ts.map +1 -0
- package/dist/core/worktree-status.js +67 -0
- package/dist/core/worktree-status.js.map +1 -0
- package/dist/i18n/index.d.ts +36 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +157 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +866 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +985 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +865 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +985 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/builtin/gradle.d.ts +9 -0
- package/dist/plugins/builtin/gradle.d.ts.map +1 -0
- package/dist/plugins/builtin/gradle.js +164 -0
- package/dist/plugins/builtin/gradle.js.map +1 -0
- package/dist/plugins/builtin/maven.d.ts +9 -0
- package/dist/plugins/builtin/maven.d.ts.map +1 -0
- package/dist/plugins/builtin/maven.js +127 -0
- package/dist/plugins/builtin/maven.js.map +1 -0
- package/dist/plugins/builtin/npm.d.ts +9 -0
- package/dist/plugins/builtin/npm.d.ts.map +1 -0
- package/dist/plugins/builtin/npm.js +238 -0
- package/dist/plugins/builtin/npm.js.map +1 -0
- package/dist/plugins/builtin/pip.d.ts +9 -0
- package/dist/plugins/builtin/pip.d.ts.map +1 -0
- package/dist/plugins/builtin/pip.js +210 -0
- package/dist/plugins/builtin/pip.js.map +1 -0
- package/dist/plugins/builtin/xcode.d.ts +12 -0
- package/dist/plugins/builtin/xcode.d.ts.map +1 -0
- package/dist/plugins/builtin/xcode.js +438 -0
- package/dist/plugins/builtin/xcode.js.map +1 -0
- package/dist/plugins/index.d.ts +13 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +24 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/manager.d.ts +93 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +270 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/utils.d.ts +42 -0
- package/dist/plugins/utils.d.ts.map +1 -0
- package/dist/plugins/utils.js +175 -0
- package/dist/plugins/utils.js.map +1 -0
- package/dist/types/index.d.ts +104 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +200 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +19 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +80 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/en/manual/04-command-reference/README.md +58 -0
- package/docs/en/manual/README.md +108 -0
- package/docs/zh-CN/manual/04-command-reference/README.md +58 -0
- package/docs/zh-CN/manual/README.md +108 -0
- package/package.json +65 -0
- package/shell/colyn.sh +55 -0
- package/shell/completion.bash +270 -0
- package/shell/completion.zsh +167 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh-CN.js","sourceRoot":"","sources":["../../../src/i18n/locales/zh-CN.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,eAAe;AACf,MAAM,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gradle 内置工具链插件
|
|
3
|
+
*
|
|
4
|
+
* 支持基于 Gradle 构建的 Java/Kotlin 项目(Spring Boot / Android 等)。
|
|
5
|
+
* 通过检测 build.gradle 或 build.gradle.kts 来识别项目类型。
|
|
6
|
+
*/
|
|
7
|
+
import { type ToolchainPlugin } from '../../types/plugin.js';
|
|
8
|
+
export declare const gradlePlugin: ToolchainPlugin;
|
|
9
|
+
//# sourceMappingURL=gradle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../../../src/plugins/builtin/gradle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,KAAK,eAAe,EAAuC,MAAM,uBAAuB,CAAC;AAkBlG,eAAO,MAAM,YAAY,EAAE,eAoK1B,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gradle 内置工具链插件
|
|
3
|
+
*
|
|
4
|
+
* 支持基于 Gradle 构建的 Java/Kotlin 项目(Spring Boot / Android 等)。
|
|
5
|
+
* 通过检测 build.gradle 或 build.gradle.kts 来识别项目类型。
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs/promises';
|
|
8
|
+
import * as fsSync from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import { execSync } from 'child_process';
|
|
11
|
+
import { PluginCommandError } from '../../types/plugin.js';
|
|
12
|
+
import { extractOutput, readSpringRuntimeConfig, writeSpringRuntimeConfig, } from '../utils.js';
|
|
13
|
+
/**
|
|
14
|
+
* 获取 Gradle 构建文件路径(优先 Kotlin DSL)
|
|
15
|
+
*/
|
|
16
|
+
function findBuildFile(worktreePath) {
|
|
17
|
+
const kts = path.join(worktreePath, 'build.gradle.kts');
|
|
18
|
+
const groovy = path.join(worktreePath, 'build.gradle');
|
|
19
|
+
if (fsSync.existsSync(kts))
|
|
20
|
+
return { filePath: kts, isKts: true };
|
|
21
|
+
if (fsSync.existsSync(groovy))
|
|
22
|
+
return { filePath: groovy, isKts: false };
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
export const gradlePlugin = {
|
|
26
|
+
name: 'gradle',
|
|
27
|
+
displayName: 'Java/Kotlin (Gradle)',
|
|
28
|
+
// ────────────────────────────────────────
|
|
29
|
+
// 检测
|
|
30
|
+
// ────────────────────────────────────────
|
|
31
|
+
detect(worktreePath) {
|
|
32
|
+
return findBuildFile(worktreePath) !== null;
|
|
33
|
+
},
|
|
34
|
+
// ────────────────────────────────────────
|
|
35
|
+
// 端口配置
|
|
36
|
+
// ────────────────────────────────────────
|
|
37
|
+
portConfig() {
|
|
38
|
+
return { key: 'server.port', defaultPort: 8080 };
|
|
39
|
+
},
|
|
40
|
+
// ────────────────────────────────────────
|
|
41
|
+
// 运行时配置(application-local.properties)
|
|
42
|
+
// ────────────────────────────────────────
|
|
43
|
+
async readRuntimeConfig(worktreePath) {
|
|
44
|
+
return readSpringRuntimeConfig(worktreePath);
|
|
45
|
+
},
|
|
46
|
+
async writeRuntimeConfig(worktreePath, config) {
|
|
47
|
+
await writeSpringRuntimeConfig(worktreePath, config);
|
|
48
|
+
},
|
|
49
|
+
// ────────────────────────────────────────
|
|
50
|
+
// Dev server 命令
|
|
51
|
+
// ────────────────────────────────────────
|
|
52
|
+
devServerCommand(_worktreePath) {
|
|
53
|
+
return ['./gradlew', 'bootRun'];
|
|
54
|
+
},
|
|
55
|
+
// ────────────────────────────────────────
|
|
56
|
+
// 项目初始化
|
|
57
|
+
// ────────────────────────────────────────
|
|
58
|
+
getRuntimeConfigFileName() {
|
|
59
|
+
return 'application-local.properties';
|
|
60
|
+
},
|
|
61
|
+
// ────────────────────────────────────────
|
|
62
|
+
// 生命周期操作
|
|
63
|
+
// ────────────────────────────────────────
|
|
64
|
+
async install(worktreePath) {
|
|
65
|
+
try {
|
|
66
|
+
execSync('./gradlew build -x test', {
|
|
67
|
+
cwd: worktreePath,
|
|
68
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new PluginCommandError('./gradlew build -x test failed', extractOutput(error));
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
async lint(worktreePath) {
|
|
76
|
+
const buildFile = findBuildFile(worktreePath);
|
|
77
|
+
if (!buildFile)
|
|
78
|
+
return;
|
|
79
|
+
let content = '';
|
|
80
|
+
try {
|
|
81
|
+
content = await fs.readFile(buildFile.filePath, 'utf-8');
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// 检查是否配置了 checkstyle 插件
|
|
87
|
+
if (!content.includes('checkstyle')) {
|
|
88
|
+
return; // 没有 checkstyle 配置,静默跳过
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
execSync('./gradlew checkstyleMain', {
|
|
92
|
+
cwd: worktreePath,
|
|
93
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
throw new PluginCommandError('./gradlew checkstyleMain failed', extractOutput(error));
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
async build(worktreePath) {
|
|
101
|
+
try {
|
|
102
|
+
execSync('./gradlew build', {
|
|
103
|
+
cwd: worktreePath,
|
|
104
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
throw new PluginCommandError('./gradlew build failed', extractOutput(error));
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
async bumpVersion(worktreePath, version) {
|
|
112
|
+
const buildFile = findBuildFile(worktreePath);
|
|
113
|
+
if (!buildFile) {
|
|
114
|
+
throw new PluginCommandError('Gradle build file not found', 'Cannot find build.gradle or build.gradle.kts');
|
|
115
|
+
}
|
|
116
|
+
const content = await fs.readFile(buildFile.filePath, 'utf-8');
|
|
117
|
+
const quote = buildFile.isKts ? '"' : "'";
|
|
118
|
+
// 匹配 version = '1.0.0' 或 version '1.0.0' (Groovy) 或 version = "1.0.0" (Kotlin)
|
|
119
|
+
const patterns = [
|
|
120
|
+
// version = "1.0.0" 或 version = '1.0.0'
|
|
121
|
+
new RegExp(`(version\\s*=\\s*)${quote}[^${quote}]*${quote}`, 'g'),
|
|
122
|
+
// version '1.0.0' (Groovy only)
|
|
123
|
+
new RegExp(`(version\\s+)${quote}[^${quote}]*${quote}`, 'g'),
|
|
124
|
+
];
|
|
125
|
+
let updated = content;
|
|
126
|
+
let found = false;
|
|
127
|
+
for (const pattern of patterns) {
|
|
128
|
+
if (pattern.test(updated)) {
|
|
129
|
+
updated = updated.replace(pattern, `$1${quote}${version}${quote}`);
|
|
130
|
+
found = true;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (!found) {
|
|
135
|
+
throw new PluginCommandError('Cannot update version in Gradle build file', `No version pattern found in ${buildFile.filePath}`);
|
|
136
|
+
}
|
|
137
|
+
await fs.writeFile(buildFile.filePath, updated, 'utf-8');
|
|
138
|
+
},
|
|
139
|
+
async publish(worktreePath) {
|
|
140
|
+
try {
|
|
141
|
+
execSync('./gradlew publish', {
|
|
142
|
+
cwd: worktreePath,
|
|
143
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
throw new PluginCommandError('./gradlew publish failed', extractOutput(error));
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
async checkPublishable(worktreePath) {
|
|
151
|
+
const buildFile = findBuildFile(worktreePath);
|
|
152
|
+
if (!buildFile) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
const content = await fs.readFile(buildFile.filePath, 'utf-8');
|
|
157
|
+
return content.includes('maven-publish') || content.includes('publishing {');
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=gradle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../../../src/plugins/builtin/gradle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven 内置工具链插件
|
|
3
|
+
*
|
|
4
|
+
* 支持基于 Maven 构建的 Java 项目(Spring Boot / Android 等)。
|
|
5
|
+
* 通过检测 pom.xml 来识别项目类型。
|
|
6
|
+
*/
|
|
7
|
+
import { type ToolchainPlugin } from '../../types/plugin.js';
|
|
8
|
+
export declare const mavenPlugin: ToolchainPlugin;
|
|
9
|
+
//# sourceMappingURL=maven.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maven.d.ts","sourceRoot":"","sources":["../../../src/plugins/builtin/maven.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,KAAK,eAAe,EAAuC,MAAM,uBAAuB,CAAC;AAOlG,eAAO,MAAM,WAAW,EAAE,eAiIzB,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven 内置工具链插件
|
|
3
|
+
*
|
|
4
|
+
* 支持基于 Maven 构建的 Java 项目(Spring Boot / Android 等)。
|
|
5
|
+
* 通过检测 pom.xml 来识别项目类型。
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs/promises';
|
|
8
|
+
import * as fsSync from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import { execSync } from 'child_process';
|
|
11
|
+
import { PluginCommandError } from '../../types/plugin.js';
|
|
12
|
+
import { extractOutput, readSpringRuntimeConfig, writeSpringRuntimeConfig, } from '../utils.js';
|
|
13
|
+
export const mavenPlugin = {
|
|
14
|
+
name: 'maven',
|
|
15
|
+
displayName: 'Java (Maven)',
|
|
16
|
+
// ────────────────────────────────────────
|
|
17
|
+
// 检测
|
|
18
|
+
// ────────────────────────────────────────
|
|
19
|
+
detect(worktreePath) {
|
|
20
|
+
return fsSync.existsSync(path.join(worktreePath, 'pom.xml'));
|
|
21
|
+
},
|
|
22
|
+
// ────────────────────────────────────────
|
|
23
|
+
// 端口配置
|
|
24
|
+
// ────────────────────────────────────────
|
|
25
|
+
portConfig() {
|
|
26
|
+
return { key: 'server.port', defaultPort: 8080 };
|
|
27
|
+
},
|
|
28
|
+
// ────────────────────────────────────────
|
|
29
|
+
// 运行时配置(application-local.properties)
|
|
30
|
+
// ────────────────────────────────────────
|
|
31
|
+
async readRuntimeConfig(worktreePath) {
|
|
32
|
+
return readSpringRuntimeConfig(worktreePath);
|
|
33
|
+
},
|
|
34
|
+
async writeRuntimeConfig(worktreePath, config) {
|
|
35
|
+
await writeSpringRuntimeConfig(worktreePath, config);
|
|
36
|
+
},
|
|
37
|
+
// ────────────────────────────────────────
|
|
38
|
+
// Dev server 命令
|
|
39
|
+
// ────────────────────────────────────────
|
|
40
|
+
devServerCommand(_worktreePath) {
|
|
41
|
+
return ['mvn', 'spring-boot:run'];
|
|
42
|
+
},
|
|
43
|
+
// ────────────────────────────────────────
|
|
44
|
+
// 项目初始化
|
|
45
|
+
// ────────────────────────────────────────
|
|
46
|
+
getRuntimeConfigFileName() {
|
|
47
|
+
return 'application-local.properties';
|
|
48
|
+
},
|
|
49
|
+
// ────────────────────────────────────────
|
|
50
|
+
// 生命周期操作
|
|
51
|
+
// ────────────────────────────────────────
|
|
52
|
+
async install(worktreePath) {
|
|
53
|
+
try {
|
|
54
|
+
execSync('mvn install -DskipTests', {
|
|
55
|
+
cwd: worktreePath,
|
|
56
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new PluginCommandError('mvn install failed', extractOutput(error));
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
async lint(worktreePath) {
|
|
64
|
+
// 检查 pom.xml 是否包含 checkstyle 插件
|
|
65
|
+
const pomPath = path.join(worktreePath, 'pom.xml');
|
|
66
|
+
let pomContent = '';
|
|
67
|
+
try {
|
|
68
|
+
pomContent = await fs.readFile(pomPath, 'utf-8');
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return; // pom.xml 不存在,静默跳过
|
|
72
|
+
}
|
|
73
|
+
if (!pomContent.includes('maven-checkstyle-plugin')) {
|
|
74
|
+
return; // 没有配置 checkstyle,静默跳过
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
execSync('mvn checkstyle:check', {
|
|
78
|
+
cwd: worktreePath,
|
|
79
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new PluginCommandError('mvn checkstyle:check failed', extractOutput(error));
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
async build(worktreePath) {
|
|
87
|
+
try {
|
|
88
|
+
execSync('mvn package -DskipTests', {
|
|
89
|
+
cwd: worktreePath,
|
|
90
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new PluginCommandError('mvn package failed', extractOutput(error));
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
async bumpVersion(worktreePath, version) {
|
|
98
|
+
try {
|
|
99
|
+
execSync(`mvn versions:set -DnewVersion=${version} -DgenerateBackupPoms=false`, { cwd: worktreePath, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
throw new PluginCommandError('mvn versions:set failed', extractOutput(error));
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
async publish(worktreePath) {
|
|
106
|
+
try {
|
|
107
|
+
execSync('mvn deploy -DskipTests', {
|
|
108
|
+
cwd: worktreePath,
|
|
109
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
throw new PluginCommandError('mvn deploy failed', extractOutput(error));
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
async checkPublishable(worktreePath) {
|
|
117
|
+
const pomPath = path.join(worktreePath, 'pom.xml');
|
|
118
|
+
try {
|
|
119
|
+
const pomContent = await fs.readFile(pomPath, 'utf-8');
|
|
120
|
+
return pomContent.includes('<distributionManagement>');
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=maven.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maven.js","sourceRoot":"","sources":["../../../src/plugins/builtin/maven.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../../src/plugins/builtin/npm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,KAAK,eAAe,EAAuC,MAAM,uBAAuB,CAAC;AA4BlG,eAAO,MAAM,SAAS,EAAE,eAwNvB,CAAC"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* npm 内置工具链插件
|
|
3
|
+
*
|
|
4
|
+
* 支持基于 npm/yarn/pnpm 的 Node.js 项目。
|
|
5
|
+
* 通过检测 package.json 来识别项目类型。
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs/promises';
|
|
8
|
+
import * as fsSync from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import { execSync } from 'child_process';
|
|
11
|
+
import dotenv from 'dotenv';
|
|
12
|
+
import { PluginCommandError } from '../../types/plugin.js';
|
|
13
|
+
import { getNpmCommand, getRunCommand } from '../../core/config.js';
|
|
14
|
+
import { extractOutput } from '../utils.js';
|
|
15
|
+
/**
|
|
16
|
+
* 读取 package.json 并解析
|
|
17
|
+
*/
|
|
18
|
+
async function readPackageJson(worktreePath) {
|
|
19
|
+
const packageJsonPath = path.join(worktreePath, 'package.json');
|
|
20
|
+
try {
|
|
21
|
+
const content = await fs.readFile(packageJsonPath, 'utf-8');
|
|
22
|
+
return JSON.parse(content);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 获取 publish 命令(发布到 npmjs.com)
|
|
30
|
+
*/
|
|
31
|
+
async function getPublishCommand() {
|
|
32
|
+
const npmCmd = await getNpmCommand();
|
|
33
|
+
if (npmCmd === 'yarn') {
|
|
34
|
+
return 'yarn npm publish';
|
|
35
|
+
}
|
|
36
|
+
return `${npmCmd} publish`;
|
|
37
|
+
}
|
|
38
|
+
export const npmPlugin = {
|
|
39
|
+
name: 'npm',
|
|
40
|
+
displayName: 'Node.js (npm/yarn/pnpm)',
|
|
41
|
+
// ────────────────────────────────────────
|
|
42
|
+
// 检测
|
|
43
|
+
// ────────────────────────────────────────
|
|
44
|
+
detect(worktreePath) {
|
|
45
|
+
const packageJsonPath = path.join(worktreePath, 'package.json');
|
|
46
|
+
return fsSync.existsSync(packageJsonPath);
|
|
47
|
+
},
|
|
48
|
+
// ────────────────────────────────────────
|
|
49
|
+
// 端口配置
|
|
50
|
+
// ────────────────────────────────────────
|
|
51
|
+
portConfig() {
|
|
52
|
+
return {
|
|
53
|
+
key: 'PORT',
|
|
54
|
+
defaultPort: 3000,
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
// ────────────────────────────────────────
|
|
58
|
+
// 运行时配置(.env.local)
|
|
59
|
+
// ────────────────────────────────────────
|
|
60
|
+
async readRuntimeConfig(worktreePath) {
|
|
61
|
+
const envLocalPath = path.join(worktreePath, '.env.local');
|
|
62
|
+
try {
|
|
63
|
+
const content = await fs.readFile(envLocalPath, 'utf-8');
|
|
64
|
+
return dotenv.parse(content);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
async writeRuntimeConfig(worktreePath, config) {
|
|
71
|
+
const envLocalPath = path.join(worktreePath, '.env.local');
|
|
72
|
+
let existingContent = '';
|
|
73
|
+
try {
|
|
74
|
+
existingContent = await fs.readFile(envLocalPath, 'utf-8');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// 文件不存在,写入新内容
|
|
78
|
+
const lines = Object.entries(config).map(([k, v]) => `${k}=${v}`);
|
|
79
|
+
await fs.writeFile(envLocalPath, lines.join('\n') + '\n', 'utf-8');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// 保留注释,逐行更新
|
|
83
|
+
const lines = existingContent.split('\n');
|
|
84
|
+
const result = [];
|
|
85
|
+
const updatedKeys = new Set();
|
|
86
|
+
for (const line of lines) {
|
|
87
|
+
const trimmed = line.trim();
|
|
88
|
+
if (trimmed.startsWith('#') || trimmed === '') {
|
|
89
|
+
result.push(line);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const match = trimmed.match(/^([^=]+)=(.*)/);
|
|
93
|
+
if (match) {
|
|
94
|
+
const key = match[1].trim();
|
|
95
|
+
if (config[key] !== undefined) {
|
|
96
|
+
result.push(`${key}=${config[key]}`);
|
|
97
|
+
updatedKeys.add(key);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
result.push(line);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
result.push(line);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// 追加新增的 key
|
|
108
|
+
for (const [key, value] of Object.entries(config)) {
|
|
109
|
+
if (!updatedKeys.has(key)) {
|
|
110
|
+
result.push(`${key}=${value}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
await fs.writeFile(envLocalPath, result.join('\n') + '\n', 'utf-8');
|
|
114
|
+
},
|
|
115
|
+
// ────────────────────────────────────────
|
|
116
|
+
// Dev server 命令
|
|
117
|
+
// ────────────────────────────────────────
|
|
118
|
+
async devServerCommand(worktreePath) {
|
|
119
|
+
const pkg = await readPackageJson(worktreePath);
|
|
120
|
+
if (!pkg)
|
|
121
|
+
return null;
|
|
122
|
+
const scripts = pkg.scripts;
|
|
123
|
+
if (!scripts?.dev)
|
|
124
|
+
return null;
|
|
125
|
+
const npmCmd = await getNpmCommand();
|
|
126
|
+
// npm -> ['npm', 'run', 'dev']; yarn/pnpm -> ['yarn', 'dev'] / ['pnpm', 'dev']
|
|
127
|
+
if (npmCmd === 'npm') {
|
|
128
|
+
return ['npm', 'run', 'dev'];
|
|
129
|
+
}
|
|
130
|
+
return [npmCmd, 'dev'];
|
|
131
|
+
},
|
|
132
|
+
// ────────────────────────────────────────
|
|
133
|
+
// 项目初始化
|
|
134
|
+
// ────────────────────────────────────────
|
|
135
|
+
getRuntimeConfigFileName() {
|
|
136
|
+
return '.env.local';
|
|
137
|
+
},
|
|
138
|
+
// ────────────────────────────────────────
|
|
139
|
+
// 生命周期操作
|
|
140
|
+
// ────────────────────────────────────────
|
|
141
|
+
async install(worktreePath) {
|
|
142
|
+
const npmCmd = await getNpmCommand();
|
|
143
|
+
try {
|
|
144
|
+
execSync(`${npmCmd} install`, {
|
|
145
|
+
cwd: worktreePath,
|
|
146
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const output = extractOutput(error);
|
|
151
|
+
throw new PluginCommandError(`${npmCmd} install failed`, output);
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
async lint(worktreePath) {
|
|
155
|
+
const pkg = await readPackageJson(worktreePath);
|
|
156
|
+
if (!pkg)
|
|
157
|
+
return;
|
|
158
|
+
const scripts = pkg.scripts;
|
|
159
|
+
// 没有 lint 脚本则静默跳过
|
|
160
|
+
if (!scripts?.lint)
|
|
161
|
+
return;
|
|
162
|
+
const runCmd = await getRunCommand();
|
|
163
|
+
try {
|
|
164
|
+
execSync(`${runCmd} lint`, {
|
|
165
|
+
cwd: worktreePath,
|
|
166
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
const output = extractOutput(error);
|
|
171
|
+
throw new PluginCommandError(`${runCmd} lint failed`, output);
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
async build(worktreePath) {
|
|
175
|
+
const pkg = await readPackageJson(worktreePath);
|
|
176
|
+
if (!pkg)
|
|
177
|
+
return;
|
|
178
|
+
const scripts = pkg.scripts;
|
|
179
|
+
// 没有 build 脚本则静默跳过
|
|
180
|
+
if (!scripts?.build)
|
|
181
|
+
return;
|
|
182
|
+
const runCmd = await getRunCommand();
|
|
183
|
+
try {
|
|
184
|
+
execSync(`${runCmd} build`, {
|
|
185
|
+
cwd: worktreePath,
|
|
186
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
const output = extractOutput(error);
|
|
191
|
+
throw new PluginCommandError(`${runCmd} build failed`, output);
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
async readVersion(worktreePath) {
|
|
195
|
+
const pkg = await readPackageJson(worktreePath);
|
|
196
|
+
if (!pkg)
|
|
197
|
+
return null;
|
|
198
|
+
return typeof pkg.version === 'string' ? pkg.version : null;
|
|
199
|
+
},
|
|
200
|
+
async bumpVersion(worktreePath, version) {
|
|
201
|
+
const packageJsonPath = path.join(worktreePath, 'package.json');
|
|
202
|
+
const content = await fs.readFile(packageJsonPath, 'utf-8');
|
|
203
|
+
const pkg = JSON.parse(content);
|
|
204
|
+
pkg.version = version;
|
|
205
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(pkg, null, 2) + '\n', 'utf-8');
|
|
206
|
+
},
|
|
207
|
+
async publish(worktreePath) {
|
|
208
|
+
const publishCmd = await getPublishCommand();
|
|
209
|
+
try {
|
|
210
|
+
execSync(publishCmd, {
|
|
211
|
+
cwd: worktreePath,
|
|
212
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
const output = extractOutput(error);
|
|
217
|
+
throw new PluginCommandError(`${publishCmd} failed`, output);
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
async checkPublishable(worktreePath) {
|
|
221
|
+
const pkg = await readPackageJson(worktreePath);
|
|
222
|
+
if (!pkg)
|
|
223
|
+
return false;
|
|
224
|
+
if (pkg.private === true) {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
const name = pkg.name;
|
|
228
|
+
const version = pkg.version;
|
|
229
|
+
if (typeof name !== 'string' || name.trim() === '') {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
if (typeof version !== 'string' || version.trim() === '') {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
return true;
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=npm.js.map
|