tuyoo-devflow 0.1.29 → 0.1.30
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.
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { registerDoctorCommand } from "./doctor.js";
|
|
2
2
|
import { registerInstallCommand } from "./install.js";
|
|
3
|
+
import { registerReadmeCommand } from "./readme.js";
|
|
3
4
|
import { registerUninstallCommand } from "./uninstall.js";
|
|
4
5
|
export function registerAgentCommand(program) {
|
|
5
6
|
const agentCommand = program.command("agent").description("Jenkins Agent 安装与运维命令");
|
|
6
7
|
registerDoctorCommand(agentCommand);
|
|
7
8
|
registerInstallCommand(agentCommand);
|
|
9
|
+
registerReadmeCommand(agentCommand);
|
|
8
10
|
registerUninstallCommand(agentCommand);
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACnF,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrC,wBAAwB,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACnF,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,wBAAwB,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { AgentMaintenanceReadmeInput } from "../../core/store/installReadme.js";
|
|
3
|
+
import { AgentInstallMetadata, AgentProfile } from "../../types.js";
|
|
4
|
+
interface ReadmeOptions {
|
|
5
|
+
workDir?: string;
|
|
6
|
+
profile?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function buildReadmeInputFromInstallState(metadata: AgentInstallMetadata | null | undefined, profile: AgentProfile | undefined): AgentMaintenanceReadmeInput;
|
|
9
|
+
export declare function refreshAgentReadme(options: ReadmeOptions): Promise<string>;
|
|
10
|
+
export declare function registerReadmeCommand(agentCommand: Command): void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { VERSION_POLICY } from "../../constants/versionPolicy.js";
|
|
3
|
+
import { buildJavaArgs } from "../../core/jenkins/launchArgs.js";
|
|
4
|
+
import { safeErrorMessage } from "../../core/log/redact.js";
|
|
5
|
+
import { getSupportedPlatform } from "../../core/platform.js";
|
|
6
|
+
import { readInstallMetadata } from "../../core/store/installMetadataStore.js";
|
|
7
|
+
import { DEFAULT_CLI_GITLAB_URL, writeAgentMaintenanceReadme, } from "../../core/store/installReadme.js";
|
|
8
|
+
import { findProfileByWorkDir, getProfile, listProfiles } from "../../core/store/profileStore.js";
|
|
9
|
+
function shellQuote(value) {
|
|
10
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
11
|
+
}
|
|
12
|
+
function displayArg(value) {
|
|
13
|
+
if (value === "***" || /^[A-Za-z0-9_./:@=-]+$/.test(value)) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
return shellQuote(value);
|
|
17
|
+
}
|
|
18
|
+
function defaultStartupScriptPath(platform, workDir) {
|
|
19
|
+
if (platform === "windows") {
|
|
20
|
+
return path.join(workDir, "start_jenkins_agent.bat");
|
|
21
|
+
}
|
|
22
|
+
return path.join(workDir, "start_jenkins_agent.sh");
|
|
23
|
+
}
|
|
24
|
+
function buildJavaLine(profile, startupScriptPath) {
|
|
25
|
+
if (!profile) {
|
|
26
|
+
return `未记录;可查看启动脚本 ${startupScriptPath}`;
|
|
27
|
+
}
|
|
28
|
+
return `java ${buildJavaArgs(profile, "***").map((item) => displayArg(item)).join(" ")}`;
|
|
29
|
+
}
|
|
30
|
+
function buildCurlLine(profile) {
|
|
31
|
+
if (!profile?.jarDownloadUrl) {
|
|
32
|
+
return "未记录";
|
|
33
|
+
}
|
|
34
|
+
return `curl -sO ${profile.jarDownloadUrl}`;
|
|
35
|
+
}
|
|
36
|
+
export function buildReadmeInputFromInstallState(metadata, profile) {
|
|
37
|
+
const platform = metadata?.platform ?? profile?.platform ?? getSupportedPlatform();
|
|
38
|
+
const workDir = metadata?.workDir ?? profile?.workDir;
|
|
39
|
+
if (!workDir) {
|
|
40
|
+
throw new Error("缺少 workDir,无法生成 README。请通过 --work-dir 指定已安装 Agent 的工作目录。");
|
|
41
|
+
}
|
|
42
|
+
const startupScriptPath = metadata?.startupScriptPath ?? profile?.startupScriptPath ?? defaultStartupScriptPath(platform, workDir);
|
|
43
|
+
return {
|
|
44
|
+
platform,
|
|
45
|
+
linuxRunUser: metadata?.linuxRunUser ?? profile?.linuxRunUser,
|
|
46
|
+
macStartMode: metadata?.macStartMode ?? profile?.macStartMode,
|
|
47
|
+
workDir,
|
|
48
|
+
startupScriptPath,
|
|
49
|
+
serviceName: metadata?.serviceName ?? profile?.serviceName,
|
|
50
|
+
serviceFileName: metadata?.serviceFileName,
|
|
51
|
+
systemUnitPath: metadata?.systemUnitPath,
|
|
52
|
+
localUnitPath: metadata?.localUnitPath,
|
|
53
|
+
profileId: metadata?.profileId ?? profile?.id,
|
|
54
|
+
installedAt: metadata?.installedAt ?? profile?.createdAt ?? "未记录",
|
|
55
|
+
condaEnvName: VERSION_POLICY.conda.envName,
|
|
56
|
+
cliGitlabUrl: DEFAULT_CLI_GITLAB_URL,
|
|
57
|
+
nodeName: profile?.nodeName,
|
|
58
|
+
jenkinsBaseUrl: profile?.jenkinsBaseUrl ?? "未记录",
|
|
59
|
+
jarDownloadUrl: profile?.jarDownloadUrl ?? "未记录",
|
|
60
|
+
curlLine: buildCurlLine(profile),
|
|
61
|
+
javaLine: buildJavaLine(profile, startupScriptPath),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async function resolveProfileForReadme(options) {
|
|
65
|
+
if (options.profile) {
|
|
66
|
+
const profile = await getProfile(options.profile);
|
|
67
|
+
if (!profile) {
|
|
68
|
+
throw new Error(`未找到 profile: ${options.profile}`);
|
|
69
|
+
}
|
|
70
|
+
return profile;
|
|
71
|
+
}
|
|
72
|
+
if (options.workDir) {
|
|
73
|
+
return await findProfileByWorkDir(getSupportedPlatform(), options.workDir);
|
|
74
|
+
}
|
|
75
|
+
const profiles = await listProfiles();
|
|
76
|
+
if (profiles.length === 1) {
|
|
77
|
+
return profiles[0];
|
|
78
|
+
}
|
|
79
|
+
if (profiles.length > 1) {
|
|
80
|
+
throw new Error("存在多个 profile,请通过 --profile 或 --work-dir 指定要更新的 Agent。");
|
|
81
|
+
}
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
export async function refreshAgentReadme(options) {
|
|
85
|
+
const profile = await resolveProfileForReadme(options);
|
|
86
|
+
const workDir = options.workDir ?? profile?.workDir;
|
|
87
|
+
if (!workDir) {
|
|
88
|
+
throw new Error("未找到已安装 Agent,请通过 --work-dir 指定工作目录。");
|
|
89
|
+
}
|
|
90
|
+
const metadata = await readInstallMetadata(workDir);
|
|
91
|
+
const input = buildReadmeInputFromInstallState(metadata, profile);
|
|
92
|
+
return await writeAgentMaintenanceReadme(input);
|
|
93
|
+
}
|
|
94
|
+
export function registerReadmeCommand(agentCommand) {
|
|
95
|
+
agentCommand
|
|
96
|
+
.command("readme")
|
|
97
|
+
.description("为已安装 Jenkins Agent 生成/更新工作目录 README 维护说明")
|
|
98
|
+
.option("--work-dir <dir>", "Agent workDir(安装命令中的 -workDir)")
|
|
99
|
+
.option("--profile <id>", "profile ID")
|
|
100
|
+
.action(async (options) => {
|
|
101
|
+
try {
|
|
102
|
+
const readmePath = await refreshAgentReadme(options);
|
|
103
|
+
console.log(`README 已更新: ${readmePath}`);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
process.exitCode = 1;
|
|
107
|
+
console.error(`agent readme 失败: ${safeErrorMessage(error)}`);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=readme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readme.js","sourceRoot":"","sources":["../../../src/commands/agent/readme.tsx"],"names":[],"mappings":"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"}
|