tuyoo-devflow 0.1.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.
Files changed (97) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +21 -0
  3. package/README.md +150 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +21 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/agent/doctor.d.ts +2 -0
  8. package/dist/commands/agent/doctor.js +70 -0
  9. package/dist/commands/agent/doctor.js.map +1 -0
  10. package/dist/commands/agent/index.d.ts +2 -0
  11. package/dist/commands/agent/index.js +8 -0
  12. package/dist/commands/agent/index.js.map +1 -0
  13. package/dist/commands/agent/install.d.ts +2 -0
  14. package/dist/commands/agent/install.js +300 -0
  15. package/dist/commands/agent/install.js.map +1 -0
  16. package/dist/commands/agent/shared.d.ts +11 -0
  17. package/dist/commands/agent/shared.js +33 -0
  18. package/dist/commands/agent/shared.js.map +1 -0
  19. package/dist/commands/agent/start.d.ts +3 -0
  20. package/dist/commands/agent/start.js +85 -0
  21. package/dist/commands/agent/start.js.map +1 -0
  22. package/dist/constants/versionPolicy.d.ts +12 -0
  23. package/dist/constants/versionPolicy.js +13 -0
  24. package/dist/constants/versionPolicy.js.map +1 -0
  25. package/dist/constants/whitelist.d.ts +3 -0
  26. package/dist/constants/whitelist.js +43 -0
  27. package/dist/constants/whitelist.js.map +1 -0
  28. package/dist/core/generator/linuxSystemd.d.ts +15 -0
  29. package/dist/core/generator/linuxSystemd.js +64 -0
  30. package/dist/core/generator/linuxSystemd.js.map +1 -0
  31. package/dist/core/generator/macLaunchd.d.ts +15 -0
  32. package/dist/core/generator/macLaunchd.js +104 -0
  33. package/dist/core/generator/macLaunchd.js.map +1 -0
  34. package/dist/core/generator/macScript.d.ts +2 -0
  35. package/dist/core/generator/macScript.js +20 -0
  36. package/dist/core/generator/macScript.js.map +1 -0
  37. package/dist/core/generator/winBat.d.ts +2 -0
  38. package/dist/core/generator/winBat.js +20 -0
  39. package/dist/core/generator/winBat.js.map +1 -0
  40. package/dist/core/jenkins/directLaunch.d.ts +2 -0
  41. package/dist/core/jenkins/directLaunch.js +22 -0
  42. package/dist/core/jenkins/directLaunch.js.map +1 -0
  43. package/dist/core/jenkins/downloadAgentJar.d.ts +1 -0
  44. package/dist/core/jenkins/downloadAgentJar.js +13 -0
  45. package/dist/core/jenkins/downloadAgentJar.js.map +1 -0
  46. package/dist/core/jenkins/launchArgs.d.ts +2 -0
  47. package/dist/core/jenkins/launchArgs.js +22 -0
  48. package/dist/core/jenkins/launchArgs.js.map +1 -0
  49. package/dist/core/jenkins/parseAgentCommand.d.ts +7 -0
  50. package/dist/core/jenkins/parseAgentCommand.js +108 -0
  51. package/dist/core/jenkins/parseAgentCommand.js.map +1 -0
  52. package/dist/core/log/redact.d.ts +2 -0
  53. package/dist/core/log/redact.js +26 -0
  54. package/dist/core/log/redact.js.map +1 -0
  55. package/dist/core/pipeline/setupPytuyooPipeline.d.ts +30 -0
  56. package/dist/core/pipeline/setupPytuyooPipeline.js +254 -0
  57. package/dist/core/pipeline/setupPytuyooPipeline.js.map +1 -0
  58. package/dist/core/platform.d.ts +5 -0
  59. package/dist/core/platform.js +27 -0
  60. package/dist/core/platform.js.map +1 -0
  61. package/dist/core/precheck/autoInstall.d.ts +9 -0
  62. package/dist/core/precheck/autoInstall.js +249 -0
  63. package/dist/core/precheck/autoInstall.js.map +1 -0
  64. package/dist/core/precheck/linuxGuard.d.ts +2 -0
  65. package/dist/core/precheck/linuxGuard.js +48 -0
  66. package/dist/core/precheck/linuxGuard.js.map +1 -0
  67. package/dist/core/precheck/network.d.ts +2 -0
  68. package/dist/core/precheck/network.js +42 -0
  69. package/dist/core/precheck/network.js.map +1 -0
  70. package/dist/core/precheck/systemInfo.d.ts +2 -0
  71. package/dist/core/precheck/systemInfo.js +37 -0
  72. package/dist/core/precheck/systemInfo.js.map +1 -0
  73. package/dist/core/precheck/tools.d.ts +12 -0
  74. package/dist/core/precheck/tools.js +135 -0
  75. package/dist/core/precheck/tools.js.map +1 -0
  76. package/dist/core/security/secretStore.d.ts +5 -0
  77. package/dist/core/security/secretStore.js +310 -0
  78. package/dist/core/security/secretStore.js.map +1 -0
  79. package/dist/core/shell/commandRunner.d.ts +17 -0
  80. package/dist/core/shell/commandRunner.js +94 -0
  81. package/dist/core/shell/commandRunner.js.map +1 -0
  82. package/dist/core/store/installCommandCache.d.ts +9 -0
  83. package/dist/core/store/installCommandCache.js +66 -0
  84. package/dist/core/store/installCommandCache.js.map +1 -0
  85. package/dist/core/store/profileStore.d.ts +4 -0
  86. package/dist/core/store/profileStore.js +43 -0
  87. package/dist/core/store/profileStore.js.map +1 -0
  88. package/dist/types.d.ts +41 -0
  89. package/dist/types.js +2 -0
  90. package/dist/types.js.map +1 -0
  91. package/dist/ui/CheckReport.d.ts +5 -0
  92. package/dist/ui/CheckReport.js +24 -0
  93. package/dist/ui/CheckReport.js.map +1 -0
  94. package/dist/ui/renderOnce.d.ts +2 -0
  95. package/dist/ui/renderOnce.js +9 -0
  96. package/dist/ui/renderOnce.js.map +1 -0
  97. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/agent/install.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CheckResult, SupportedPlatform } from "../../types.js";
2
+ export interface DoctorCheckResult {
3
+ linuxResults: CheckResult[];
4
+ networkResults: CheckResult[];
5
+ toolResults: CheckResult[];
6
+ }
7
+ export declare function runDoctorChecks(platform: SupportedPlatform, jenkinsBaseUrl: string): Promise<DoctorCheckResult>;
8
+ export declare function hasBlockingFailure(checks: DoctorCheckResult): boolean;
9
+ export declare function hasLinuxOrNetworkFailure(checks: DoctorCheckResult): boolean;
10
+ export declare function getFailedToolChecks(checks: DoctorCheckResult): CheckResult[];
11
+ export declare function printCheckSummary(checks: DoctorCheckResult): Promise<void>;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { checkLinuxGuards } from "../../core/precheck/linuxGuard.js";
3
+ import { checkWhitelistConnectivity } from "../../core/precheck/network.js";
4
+ import { checkRequiredTools } from "../../core/precheck/tools.js";
5
+ import { CheckReport } from "../../ui/CheckReport.js";
6
+ import { renderOnce } from "../../ui/renderOnce.js";
7
+ export async function runDoctorChecks(platform, jenkinsBaseUrl) {
8
+ const linuxResults = platform === "linux" ? await checkLinuxGuards() : [];
9
+ const networkResults = await checkWhitelistConnectivity(jenkinsBaseUrl);
10
+ const toolResults = await checkRequiredTools(platform);
11
+ return {
12
+ linuxResults,
13
+ networkResults,
14
+ toolResults,
15
+ };
16
+ }
17
+ export function hasBlockingFailure(checks) {
18
+ return [...checks.linuxResults, ...checks.networkResults, ...checks.toolResults].some((item) => item.status === "fail");
19
+ }
20
+ export function hasLinuxOrNetworkFailure(checks) {
21
+ return [...checks.linuxResults, ...checks.networkResults].some((item) => item.status === "fail");
22
+ }
23
+ export function getFailedToolChecks(checks) {
24
+ return checks.toolResults.filter((item) => item.status === "fail");
25
+ }
26
+ export async function printCheckSummary(checks) {
27
+ if (checks.linuxResults.length > 0) {
28
+ await renderOnce(_jsx(CheckReport, { title: "Linux \u524D\u7F6E\u68C0\u67E5", results: checks.linuxResults }));
29
+ }
30
+ await renderOnce(_jsx(CheckReport, { title: "\u7F51\u7EDC\u767D\u540D\u5355\u68C0\u67E5", results: checks.networkResults }));
31
+ await renderOnce(_jsx(CheckReport, { title: "\u5DE5\u5177\u4E0E\u7248\u672C\u68C0\u67E5", results: checks.toolResults }));
32
+ }
33
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/agent/shared.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQpD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA2B,EAC3B,cAAsB;IAEtB,MAAM,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO;QACL,YAAY;QACZ,cAAc;QACd,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACnF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAyB;IAChE,OAAO,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAyB;IAC/D,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,gCAAY,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,GAAI,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,UAAU,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,4CAAS,EAAC,OAAO,EAAE,MAAM,CAAC,cAAc,GAAI,CAAC,CAAC;IAClF,MAAM,UAAU,CAAC,KAAC,WAAW,IAAC,KAAK,EAAC,4CAAS,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,GAAI,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerStartCommand(agentCommand: Command): void;
3
+ export declare function registerInternalRunAgentCommand(program: Command): void;
@@ -0,0 +1,85 @@
1
+ import { Command } from "commander";
2
+ import { spawn } from "node:child_process";
3
+ import fs from "fs-extra";
4
+ import path from "node:path";
5
+ import { downloadAgentJar } from "../../core/jenkins/downloadAgentJar.js";
6
+ import { buildJavaArgs } from "../../core/jenkins/launchArgs.js";
7
+ import { safeErrorMessage } from "../../core/log/redact.js";
8
+ import { getProfile, listProfiles } from "../../core/store/profileStore.js";
9
+ async function resolveProfile(profileId) {
10
+ if (profileId) {
11
+ const profile = await getProfile(profileId);
12
+ if (!profile) {
13
+ throw new Error(`未找到 profile: ${profileId}`);
14
+ }
15
+ return profile;
16
+ }
17
+ const profiles = await listProfiles();
18
+ if (profiles.length === 1) {
19
+ return profiles[0];
20
+ }
21
+ if (profiles.length === 0) {
22
+ throw new Error("未找到任何 profile,请先执行 tdf agent install。");
23
+ }
24
+ throw new Error("存在多个 profile,请通过 --profile 指定。");
25
+ }
26
+ async function runAgent(profileId) {
27
+ const profile = await resolveProfile(profileId);
28
+ const secret = profile.jenkinsSecret;
29
+ if (!secret) {
30
+ throw new Error("当前 profile 未包含 jenkinsSecret,请重新执行 tdf agent install。");
31
+ }
32
+ const agentJarPath = path.join(profile.workDir, "agent.jar");
33
+ const hasJar = await fs.pathExists(agentJarPath);
34
+ if (!hasJar) {
35
+ await downloadAgentJar(profile.jarDownloadUrl, agentJarPath);
36
+ }
37
+ const args = buildJavaArgs(profile, secret);
38
+ const child = spawn("java", args, {
39
+ cwd: profile.workDir,
40
+ stdio: "inherit",
41
+ });
42
+ await new Promise((resolve, reject) => {
43
+ child.on("error", reject);
44
+ child.on("close", (code) => {
45
+ if (code === 0 || code === 143) {
46
+ resolve();
47
+ return;
48
+ }
49
+ reject(new Error(`java 退出码: ${code ?? 1}`));
50
+ });
51
+ });
52
+ }
53
+ export function registerStartCommand(agentCommand) {
54
+ agentCommand
55
+ .command("start")
56
+ .description("启动指定 profile 的 Jenkins Agent")
57
+ .option("--profile <id>", "profile ID")
58
+ .action(async (options) => {
59
+ try {
60
+ await runAgent(options.profile);
61
+ }
62
+ catch (error) {
63
+ process.exitCode = 1;
64
+ console.error(`agent start 失败: ${safeErrorMessage(error)}`);
65
+ }
66
+ });
67
+ }
68
+ export function registerInternalRunAgentCommand(program) {
69
+ program
70
+ .command("internal")
71
+ .description("内部命令")
72
+ .addCommand(new Command("run-agent")
73
+ .description("内部运行 Jenkins Agent")
74
+ .requiredOption("--profile <id>", "profile ID")
75
+ .action(async (options) => {
76
+ try {
77
+ await runAgent(options.profile);
78
+ }
79
+ catch (error) {
80
+ process.exitCode = 1;
81
+ console.error(`internal run-agent 失败: ${safeErrorMessage(error)}`);
82
+ }
83
+ }));
84
+ }
85
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/agent/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const VERSION_POLICY: {
2
+ readonly git: {
3
+ readonly min: "2.30.0";
4
+ };
5
+ readonly java: {
6
+ readonly minMajor: 21;
7
+ };
8
+ readonly conda: {
9
+ readonly envName: "pytuyoo-pipeline";
10
+ readonly pythonVersion: "3.10.13";
11
+ };
12
+ };
@@ -0,0 +1,13 @@
1
+ export const VERSION_POLICY = {
2
+ git: {
3
+ min: "2.30.0",
4
+ },
5
+ java: {
6
+ minMajor: 21,
7
+ },
8
+ conda: {
9
+ envName: "pytuyoo-pipeline",
10
+ pythonVersion: "3.10.13",
11
+ },
12
+ };
13
+ //# sourceMappingURL=versionPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionPolicy.js","sourceRoot":"","sources":["../../src/constants/versionPolicy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE;QACH,GAAG,EAAE,QAAQ;KACd;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;KACb;IACD,KAAK,EAAE;QACL,OAAO,EAAE,kBAAkB;QAC3B,aAAa,EAAE,SAAS;KACzB;CACO,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NetworkTarget } from "../types.js";
2
+ export declare const STATIC_WHITELIST_TARGETS: NetworkTarget[];
3
+ export declare function getWhitelistTargets(jenkinsBaseUrl: string): NetworkTarget[];
@@ -0,0 +1,43 @@
1
+ export const STATIC_WHITELIST_TARGETS = [
2
+ {
3
+ name: "GitLab",
4
+ host: "tygit.tuyoo.com",
5
+ port: 443,
6
+ },
7
+ {
8
+ name: "MongoDB",
9
+ host: "124.70.73.115",
10
+ port: 27017,
11
+ },
12
+ {
13
+ name: "Nexus",
14
+ host: "tynexus.tuyoo.com",
15
+ port: 443,
16
+ },
17
+ {
18
+ name: "Harbor",
19
+ host: "harbor.ops.tuyoops.com",
20
+ port: 443,
21
+ },
22
+ ];
23
+ export function getWhitelistTargets(jenkinsBaseUrl) {
24
+ const parsed = new URL(jenkinsBaseUrl);
25
+ const jenkinsHost = parsed.hostname;
26
+ const isHttps = parsed.protocol === "https:";
27
+ const webPort = isHttps ? 443 : 80;
28
+ const webName = isHttps ? "Jenkins HTTPS" : "Jenkins HTTP";
29
+ return [
30
+ {
31
+ name: webName,
32
+ host: jenkinsHost,
33
+ port: webPort,
34
+ },
35
+ {
36
+ name: "Jenkins JNLP",
37
+ host: jenkinsHost,
38
+ port: 50000,
39
+ },
40
+ ...STATIC_WHITELIST_TARGETS,
41
+ ];
42
+ }
43
+ //# sourceMappingURL=whitelist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../../src/constants/whitelist.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,GAAG;KACV;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACZ;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,GAAG;KACV;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,GAAG;KACV;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,cAAsB;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAE3D,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,OAAO;SACd;QACD;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK;SACZ;QACD,GAAG,wBAAwB;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface LinuxSystemdOptions {
2
+ serviceName: string;
3
+ serviceUser: string;
4
+ workDir: string;
5
+ startupScriptPath: string;
6
+ agentLabel?: string;
7
+ }
8
+ export declare function buildLinuxStartupScript(workDir: string, javaArgs: string[]): string;
9
+ export declare function buildLinuxSystemdUnit(options: LinuxSystemdOptions): string;
10
+ export declare function writeLinuxStartupScript(startupScriptPath: string, workDir: string, javaArgs: string[]): Promise<void>;
11
+ export declare function tryInstallSystemdService(options: LinuxSystemdOptions): Promise<{
12
+ installed: boolean;
13
+ unitPath: string;
14
+ hint: string;
15
+ }>;
@@ -0,0 +1,64 @@
1
+ import { chmod, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { runCommand } from "../shell/commandRunner.js";
4
+ function shellQuote(value) {
5
+ return `'${value.replace(/'/g, `'\\''`)}'`;
6
+ }
7
+ function buildJavaCommand(javaArgs) {
8
+ return `java ${javaArgs.map((item) => shellQuote(item)).join(" ")}`;
9
+ }
10
+ export function buildLinuxStartupScript(workDir, javaArgs) {
11
+ return `#!/usr/bin/env bash
12
+ set -euo pipefail
13
+
14
+ cd ${shellQuote(workDir)}
15
+ exec ${buildJavaCommand(javaArgs)}
16
+ `;
17
+ }
18
+ export function buildLinuxSystemdUnit(options) {
19
+ const descriptionLabel = options.agentLabel ?? options.serviceName;
20
+ return `[Unit]
21
+ Description=Jenkins Agent (${descriptionLabel})
22
+ After=network.target
23
+
24
+ [Service]
25
+ Type=simple
26
+ User=${options.serviceUser}
27
+ WorkingDirectory=${options.workDir}
28
+ ExecStart=/bin/bash ${options.startupScriptPath}
29
+ SuccessExitStatus=143
30
+ Restart=on-failure
31
+ RestartSec=10s
32
+
33
+ [Install]
34
+ WantedBy=multi-user.target
35
+ `;
36
+ }
37
+ export async function writeLinuxStartupScript(startupScriptPath, workDir, javaArgs) {
38
+ await writeFile(startupScriptPath, buildLinuxStartupScript(workDir, javaArgs), "utf8");
39
+ await chmod(startupScriptPath, 0o755);
40
+ }
41
+ export async function tryInstallSystemdService(options) {
42
+ const unitContent = buildLinuxSystemdUnit(options);
43
+ const unitPath = path.join("/etc/systemd/system", `${options.serviceName}.service`);
44
+ try {
45
+ await writeFile(unitPath, unitContent, "utf8");
46
+ await runCommand("systemctl daemon-reload");
47
+ await runCommand(`systemctl enable --now ${options.serviceName}`);
48
+ return {
49
+ installed: true,
50
+ unitPath,
51
+ hint: `管理命令: sudo systemctl status ${options.serviceName} | sudo systemctl restart ${options.serviceName}`,
52
+ };
53
+ }
54
+ catch {
55
+ const fallbackPath = path.join(options.workDir, `${options.serviceName}.service`);
56
+ await writeFile(fallbackPath, unitContent, "utf8");
57
+ return {
58
+ installed: false,
59
+ unitPath: fallbackPath,
60
+ hint: `请执行: sudo cp ${fallbackPath} /etc/systemd/system/${options.serviceName}.service && sudo systemctl daemon-reload && sudo systemctl enable --now ${options.serviceName}`,
61
+ };
62
+ }
63
+ }
64
+ //# sourceMappingURL=linuxSystemd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linuxSystemd.js","sourceRoot":"","sources":["../../../src/core/generator/linuxSystemd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAUvD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,QAAQ,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAAkB;IACzE,OAAO;;;KAGJ,UAAU,CAAC,OAAO,CAAC;OACjB,gBAAgB,CAAC,QAAQ,CAAC;CAChC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA4B;IAChE,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IACnE,OAAO;6BACoB,gBAAgB;;;;;OAKtC,OAAO,CAAC,WAAW;mBACP,OAAO,CAAC,OAAO;sBACZ,OAAO,CAAC,iBAAiB;;;;;;;CAO9C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,iBAAyB,EACzB,OAAe,EACf,QAAkB;IAElB,MAAM,SAAS,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA4B;IAE5B,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;IAEpF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,CAAC,yBAAyB,CAAC,CAAC;QAC5C,MAAM,UAAU,CAAC,0BAA0B,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO;YACL,SAAS,EAAE,IAAI;YACf,QAAQ;YACR,IAAI,EAAE,+BAA+B,OAAO,CAAC,WAAW,6BAA6B,OAAO,CAAC,WAAW,EAAE;SAC3G,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;QAClF,MAAM,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,gBAAgB,YAAY,wBAAwB,OAAO,CAAC,WAAW,2EAA2E,OAAO,CAAC,WAAW,EAAE;SAC9K,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface MacLaunchdOptions {
2
+ serviceName: string;
3
+ guiUid: number;
4
+ workDir: string;
5
+ startupScriptPath: string;
6
+ }
7
+ export declare function buildMacLaunchServiceTarget(guiUid: number, serviceName: string): string;
8
+ export declare function resolveMacGuiUid(): Promise<number>;
9
+ export declare function buildMacLaunchAgentPlist(options: MacLaunchdOptions): string;
10
+ export declare function tryInstallMacLaunchAgent(options: MacLaunchdOptions): Promise<{
11
+ installed: boolean;
12
+ plistPath: string;
13
+ hint: string;
14
+ serviceTarget: string;
15
+ }>;
@@ -0,0 +1,104 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import fs from "fs-extra";
5
+ import { runCommand } from "../shell/commandRunner.js";
6
+ function shellQuote(value) {
7
+ return `'${value.replace(/'/g, `'\\''`)}'`;
8
+ }
9
+ function xmlEscape(value) {
10
+ return value
11
+ .replace(/&/g, "&amp;")
12
+ .replace(/</g, "&lt;")
13
+ .replace(/>/g, "&gt;")
14
+ .replace(/"/g, "&quot;")
15
+ .replace(/'/g, "&apos;");
16
+ }
17
+ function buildGuiDomain(guiUid) {
18
+ return `gui/${guiUid}`;
19
+ }
20
+ export function buildMacLaunchServiceTarget(guiUid, serviceName) {
21
+ return `${buildGuiDomain(guiUid)}/${serviceName}`;
22
+ }
23
+ export async function resolveMacGuiUid() {
24
+ if (typeof process.getuid !== "function") {
25
+ throw new Error("当前环境不支持获取 UID,无法安装 launchctl GUI 服务。");
26
+ }
27
+ const currentUid = process.getuid();
28
+ if (currentUid !== 0) {
29
+ return currentUid;
30
+ }
31
+ const result = await runCommand("stat -f '%u' /dev/console");
32
+ const consoleUid = Number.parseInt(result.stdout.trim(), 10);
33
+ if (!Number.isFinite(consoleUid) || consoleUid <= 0) {
34
+ throw new Error("未检测到有效的 GUI 登录用户,请在图形会话中执行 install。");
35
+ }
36
+ return consoleUid;
37
+ }
38
+ export function buildMacLaunchAgentPlist(options) {
39
+ const stdoutPath = path.join(options.workDir, `${options.serviceName}.stdout.log`);
40
+ const stderrPath = path.join(options.workDir, `${options.serviceName}.stderr.log`);
41
+ return `<?xml version="1.0" encoding="UTF-8"?>
42
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
43
+ <plist version="1.0">
44
+ <dict>
45
+ <key>Label</key>
46
+ <string>${xmlEscape(options.serviceName)}</string>
47
+ <key>ProgramArguments</key>
48
+ <array>
49
+ <string>/bin/bash</string>
50
+ <string>${xmlEscape(options.startupScriptPath)}</string>
51
+ </array>
52
+ <key>WorkingDirectory</key>
53
+ <string>${xmlEscape(options.workDir)}</string>
54
+ <key>RunAtLoad</key>
55
+ <true/>
56
+ <key>KeepAlive</key>
57
+ <true/>
58
+ <key>LimitLoadToSessionType</key>
59
+ <array>
60
+ <string>Aqua</string>
61
+ </array>
62
+ <key>ProcessType</key>
63
+ <string>Interactive</string>
64
+ <key>StandardOutPath</key>
65
+ <string>${xmlEscape(stdoutPath)}</string>
66
+ <key>StandardErrorPath</key>
67
+ <string>${xmlEscape(stderrPath)}</string>
68
+ </dict>
69
+ </plist>
70
+ `;
71
+ }
72
+ export async function tryInstallMacLaunchAgent(options) {
73
+ const plistContent = buildMacLaunchAgentPlist(options);
74
+ const launchAgentsDir = path.join(os.homedir(), "Library", "LaunchAgents");
75
+ const plistPath = path.join(launchAgentsDir, `${options.serviceName}.plist`);
76
+ const guiDomain = buildGuiDomain(options.guiUid);
77
+ const serviceTarget = buildMacLaunchServiceTarget(options.guiUid, options.serviceName);
78
+ try {
79
+ await fs.ensureDir(launchAgentsDir);
80
+ await writeFile(plistPath, plistContent, "utf8");
81
+ await runCommand(`launchctl bootout ${serviceTarget}`, { allowFailure: true });
82
+ await runCommand(`launchctl bootstrap ${guiDomain} ${shellQuote(plistPath)}`);
83
+ await runCommand(`launchctl enable ${serviceTarget}`, { allowFailure: true });
84
+ await runCommand(`launchctl kickstart -k ${serviceTarget}`);
85
+ return {
86
+ installed: true,
87
+ plistPath,
88
+ hint: `管理命令: launchctl print ${serviceTarget} | launchctl kickstart -k ${serviceTarget} | launchctl bootout ${serviceTarget}`,
89
+ serviceTarget,
90
+ };
91
+ }
92
+ catch {
93
+ const fallbackPath = path.join(options.workDir, `${options.serviceName}.plist`);
94
+ const targetPath = path.join(launchAgentsDir, `${options.serviceName}.plist`);
95
+ await writeFile(fallbackPath, plistContent, "utf8");
96
+ return {
97
+ installed: false,
98
+ plistPath: fallbackPath,
99
+ hint: `请执行: mkdir -p ${shellQuote(launchAgentsDir)} && cp ${shellQuote(fallbackPath)} ${shellQuote(targetPath)} && (launchctl bootout ${serviceTarget} 2>/dev/null || true) && launchctl bootstrap ${guiDomain} ${shellQuote(targetPath)} && launchctl kickstart -k ${serviceTarget}`,
100
+ serviceTarget,
101
+ };
102
+ }
103
+ }
104
+ //# sourceMappingURL=macLaunchd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macLaunchd.js","sourceRoot":"","sources":["../../../src/core/generator/macLaunchd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function buildMacStartupScript(workDir: string, javaArgs: string[]): string;
2
+ export declare function writeMacStartupScript(filePath: string, workDir: string, javaArgs: string[]): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { chmod, writeFile } from "node:fs/promises";
2
+ function shellQuote(value) {
3
+ return `'${value.replace(/'/g, `'\\''`)}'`;
4
+ }
5
+ function buildJavaCommand(javaArgs) {
6
+ return `java ${javaArgs.map((item) => shellQuote(item)).join(" ")}`;
7
+ }
8
+ export function buildMacStartupScript(workDir, javaArgs) {
9
+ return `#!/usr/bin/env bash
10
+ set -euo pipefail
11
+
12
+ cd ${shellQuote(workDir)}
13
+ exec ${buildJavaCommand(javaArgs)}
14
+ `;
15
+ }
16
+ export async function writeMacStartupScript(filePath, workDir, javaArgs) {
17
+ await writeFile(filePath, buildMacStartupScript(workDir, javaArgs), "utf8");
18
+ await chmod(filePath, 0o755);
19
+ }
20
+ //# sourceMappingURL=macScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macScript.js","sourceRoot":"","sources":["../../../src/core/generator/macScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,QAAQ,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,QAAkB;IACvE,OAAO;;;KAGJ,UAAU,CAAC,OAAO,CAAC;OACjB,gBAAgB,CAAC,QAAQ,CAAC;CAChC,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,OAAe,EACf,QAAkB;IAElB,MAAM,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5E,MAAM,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function buildWindowsStartupBat(workDir: string, javaArgs: string[]): string;
2
+ export declare function writeWindowsStartupBat(filePath: string, workDir: string, javaArgs: string[]): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ function cmdQuote(value) {
3
+ return `"${value.replace(/"/g, '""')}"`;
4
+ }
5
+ function buildJavaCommand(javaArgs) {
6
+ return `java ${javaArgs.map((item) => cmdQuote(item)).join(" ")}`;
7
+ }
8
+ export function buildWindowsStartupBat(workDir, javaArgs) {
9
+ return `@echo off
10
+ setlocal enabledelayedexpansion
11
+
12
+ cd /d ${cmdQuote(workDir)}
13
+ ${buildJavaCommand(javaArgs)}
14
+ if errorlevel 1 exit /b %errorlevel%
15
+ `;
16
+ }
17
+ export async function writeWindowsStartupBat(filePath, workDir, javaArgs) {
18
+ await writeFile(filePath, buildWindowsStartupBat(workDir, javaArgs), "utf8");
19
+ }
20
+ //# sourceMappingURL=winBat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"winBat.js","sourceRoot":"","sources":["../../../src/core/generator/winBat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,QAAQ,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAAkB;IACxE,OAAO;;;QAGD,QAAQ,CAAC,OAAO,CAAC;EACvB,gBAAgB,CAAC,QAAQ,CAAC;;CAE3B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,OAAe,EACf,QAAkB;IAElB,MAAM,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ParsedAgentCommand } from "../../types.js";
2
+ export declare function buildJavaArgsFromParsed(parsed: ParsedAgentCommand): string[];
@@ -0,0 +1,22 @@
1
+ export function buildJavaArgsFromParsed(parsed) {
2
+ const args = ["-jar", "agent.jar"];
3
+ if (parsed.mode === "url") {
4
+ args.push("-url", parsed.jenkinsBaseUrl);
5
+ args.push("-secret", parsed.secret);
6
+ if (parsed.nodeName) {
7
+ args.push("-name", parsed.nodeName);
8
+ }
9
+ args.push("-workDir", parsed.workDir);
10
+ }
11
+ else {
12
+ if (!parsed.jnlpUrl) {
13
+ throw new Error("缺少 jnlpUrl 参数。");
14
+ }
15
+ args.push("-jnlpUrl", parsed.jnlpUrl);
16
+ args.push("-secret", parsed.secret);
17
+ args.push("-workDir", parsed.workDir);
18
+ }
19
+ args.push(...parsed.additionalArgs);
20
+ return args;
21
+ }
22
+ //# sourceMappingURL=directLaunch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directLaunch.js","sourceRoot":"","sources":["../../../src/core/jenkins/directLaunch.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,MAA0B;IAChE,MAAM,IAAI,GAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function downloadAgentJar(url: string, destFile: string): Promise<void>;
@@ -0,0 +1,13 @@
1
+ import fs from "node:fs";
2
+ import { mkdir } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { pipeline } from "node:stream/promises";
5
+ export async function downloadAgentJar(url, destFile) {
6
+ await mkdir(path.dirname(destFile), { recursive: true });
7
+ const response = await fetch(url, { redirect: "follow" });
8
+ if (!response.ok || !response.body) {
9
+ throw new Error(`下载 agent.jar 失败: ${response.status} ${response.statusText}`);
10
+ }
11
+ await pipeline(response.body, fs.createWriteStream(destFile));
12
+ }
13
+ //# sourceMappingURL=downloadAgentJar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadAgentJar.js","sourceRoot":"","sources":["../../../src/core/jenkins/downloadAgentJar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,QAAgB;IAClE,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AgentProfile } from "../../types.js";
2
+ export declare function buildJavaArgs(profile: AgentProfile, secret: string): string[];
@@ -0,0 +1,22 @@
1
+ export function buildJavaArgs(profile, secret) {
2
+ const args = ["-jar", "agent.jar"];
3
+ if (profile.mode === "url") {
4
+ args.push("-url", profile.jenkinsBaseUrl);
5
+ args.push("-secret", secret);
6
+ if (profile.nodeName) {
7
+ args.push("-name", profile.nodeName);
8
+ }
9
+ args.push("-workDir", profile.workDir);
10
+ }
11
+ else {
12
+ if (!profile.jnlpUrl) {
13
+ throw new Error("profile 缺少 jnlpUrl。");
14
+ }
15
+ args.push("-jnlpUrl", profile.jnlpUrl);
16
+ args.push("-secret", secret);
17
+ args.push("-workDir", profile.workDir);
18
+ }
19
+ args.push(...profile.additionalArgs);
20
+ return args;
21
+ }
22
+ //# sourceMappingURL=launchArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchArgs.js","sourceRoot":"","sources":["../../../src/core/jenkins/launchArgs.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,OAAqB,EAAE,MAAc;IACjE,MAAM,IAAI,GAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ParsedAgentCommand } from "../../types.js";
2
+ interface ParseInput {
3
+ curlLine: string;
4
+ javaLine: string;
5
+ }
6
+ export declare function parseAgentCommand(input: ParseInput): ParsedAgentCommand;
7
+ export {};