@rage-against-the-pixel/unity-cli 3.0.2 → 4.0.1

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 (51) hide show
  1. package/README.md +86 -224
  2. package/dist/android-sdk.js +8 -1
  3. package/dist/android-sdk.js.map +1 -1
  4. package/dist/cli.js +180 -505
  5. package/dist/cli.js.map +1 -1
  6. package/dist/failure-markers.d.ts +17 -0
  7. package/dist/failure-markers.js +46 -0
  8. package/dist/failure-markers.js.map +1 -0
  9. package/dist/github-actions-ci.d.ts +1 -0
  10. package/dist/github-actions-ci.js +17 -3
  11. package/dist/github-actions-ci.js.map +1 -1
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.js +2 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/license-client.d.ts +119 -2
  16. package/dist/license-client.js +737 -56
  17. package/dist/license-client.js.map +1 -1
  18. package/dist/logger-provider.d.ts +2 -0
  19. package/dist/logger-provider.js +3 -0
  20. package/dist/logger-provider.js.map +1 -1
  21. package/dist/logging.d.ts +5 -0
  22. package/dist/logging.js +47 -0
  23. package/dist/logging.js.map +1 -1
  24. package/dist/process-tracker.d.ts +71 -0
  25. package/dist/process-tracker.js +213 -0
  26. package/dist/process-tracker.js.map +1 -0
  27. package/dist/unity-cli.d.ts +97 -0
  28. package/dist/unity-cli.js +591 -0
  29. package/dist/unity-cli.js.map +1 -0
  30. package/dist/unity-editor.d.ts +25 -16
  31. package/dist/unity-editor.js +204 -107
  32. package/dist/unity-editor.js.map +1 -1
  33. package/dist/unity-installer.d.ts +139 -0
  34. package/dist/unity-installer.js +1018 -0
  35. package/dist/unity-installer.js.map +1 -0
  36. package/dist/unity-logging.d.ts +16 -1
  37. package/dist/unity-logging.js +55 -3
  38. package/dist/unity-logging.js.map +1 -1
  39. package/dist/unity-project.d.ts +15 -0
  40. package/dist/unity-project.js +80 -0
  41. package/dist/unity-project.js.map +1 -1
  42. package/dist/upm-cli.d.ts +8 -8
  43. package/dist/upm-cli.js +8 -8
  44. package/dist/upm-cli.js.map +1 -1
  45. package/dist/utilities.d.ts +27 -7
  46. package/dist/utilities.js +119 -63
  47. package/dist/utilities.js.map +1 -1
  48. package/package.json +10 -11
  49. package/dist/unity-hub.d.ts +0 -140
  50. package/dist/unity-hub.js +0 -1425
  51. package/dist/unity-hub.js.map +0 -1
@@ -4,6 +4,8 @@ export interface EditorCommand {
4
4
  projectPath?: string | undefined;
5
5
  }
6
6
  export declare class UnityEditor {
7
+ /** Editor flags whose values are never logged. */
8
+ private static readonly SENSITIVE_FLAGS;
7
9
  readonly editorPath: string;
8
10
  readonly editorRootPath: string;
9
11
  readonly version: UnityVersion;
@@ -16,18 +18,6 @@ export declare class UnityEditor {
16
18
  * @throws Will throw an error if the editor path is invalid or not executable.
17
19
  */
18
20
  constructor(editorPath: string, version?: UnityVersion | undefined);
19
- /**
20
- * Get the full path to a Unity project template based on the provided template name or regex pattern.
21
- * @param template The name or regex pattern of the template to find.
22
- * @returns The full path to the matching template file.
23
- * @throws If no templates are found, or no matching template is found.
24
- */
25
- GetTemplatePath(template: string): string | undefined;
26
- /**
27
- * Get a list of available Unity project templates.
28
- * @returns An array of available template file names.
29
- */
30
- GetAvailableTemplates(): string[];
31
21
  /**
32
22
  * Scrubs sensitive command-line arguments for safe logging.
33
23
  * Replaces values for sensitive flags like -username, -password, etc. with [REDACTED].
@@ -41,6 +31,29 @@ export declare class UnityEditor {
41
31
  * @throws Will throw an error if the Unity Editor fails to start or exits with a non-zero code.
42
32
  */
43
33
  Run(command: EditorCommand): Promise<void>;
34
+ private runEditor;
35
+ /**
36
+ * After a failed run, lists the error lines from the Editor log outside the collapsed log group, so the cause sits
37
+ * next to "Unity failed with exit code N". Stack frames are left out and the list is capped; with no error line,
38
+ * the log's last lines are printed instead. Annotations are not affected.
39
+ */
40
+ private printFailureRecap;
41
+ /**
42
+ * Decides whether a run goes through the official CLI's `unity run`.
43
+ * It needs a project and a -quit argument, and is skipped for editors and hosts it is not verified with:
44
+ * editors older than 2019.1, Linux runs that need xvfb, and x86_64 editors under Rosetta.
45
+ * Set UNITY_CLI_DIRECT_LAUNCH=true to always launch the editor directly.
46
+ */
47
+ private getUnityCliForRun;
48
+ /**
49
+ * Builds the `unity run` arguments for an editor command.
50
+ * `unity run` adds -batchmode, -quit, -projectPath and -logFile itself and rejects them after `--`, so those are not forwarded.
51
+ * @param editorPath The editor executable.
52
+ * @param projectPath The Unity project.
53
+ * @param logPath The editor log file, which unity-cli tails itself.
54
+ * @param args The editor arguments.
55
+ */
56
+ static GetUnityRunArgs(editorPath: string, projectPath: string, logPath: string, args: string[]): string[];
44
57
  /**
45
58
  * Get or create the Logs directory within the Unity project or current working directory.
46
59
  * @param projectPath The path to the Unity project. If undefined, uses the current working directory.
@@ -72,8 +85,4 @@ export declare class UnityEditor {
72
85
  * @returns The path to the Unity Editor logs directory.
73
86
  */
74
87
  static GetEditorLogsDirectory(): string;
75
- /**
76
- * Uninstall the Unity Editor.
77
- */
78
- Uninstall(): Promise<void>;
79
88
  }
@@ -41,8 +41,15 @@ const logging_1 = require("./logging");
41
41
  const unity_version_1 = require("./unity-version");
42
42
  const child_process_1 = require("child_process");
43
43
  const utilities_1 = require("./utilities");
44
+ const unity_cli_1 = require("./unity-cli");
45
+ const process_tracker_1 = require("./process-tracker");
44
46
  const unity_logging_1 = require("./unity-logging");
47
+ /** Thrown when `unity run` refuses the editor arguments before it starts the editor. */
48
+ class UnityRunRejectedError extends Error {
49
+ }
45
50
  class UnityEditor {
51
+ /** Editor flags whose values are never logged. */
52
+ static SENSITIVE_FLAGS = ['-username', '-password', '-cloudOrganization', '-serial'];
46
53
  editorPath;
47
54
  editorRootPath;
48
55
  version;
@@ -113,75 +120,6 @@ class UnityEditor {
113
120
  this.logger.debug(`No write access to Unity editor root path: ${this.editorRootPath}`);
114
121
  }
115
122
  }
116
- /**
117
- * Get the full path to a Unity project template based on the provided template name or regex pattern.
118
- * @param template The name or regex pattern of the template to find.
119
- * @returns The full path to the matching template file.
120
- * @throws If no templates are found, or no matching template is found.
121
- */
122
- GetTemplatePath(template) {
123
- const templates = this.GetAvailableTemplates();
124
- if (templates.length === 0) {
125
- this.logger.warn(`No Unity templates found for ${this.version.toString()}`);
126
- return undefined;
127
- }
128
- // Build a regex to match the template name, an optional numeric version suffix, and required file extension
129
- // Example input: com.unity.template.3d(-cross-platform)?.*
130
- // Example match: com.unity.template.3d-cross-platform-1.2.3.tar.gz or com.unity.template.3d-1.2.3.tgz
131
- let regex;
132
- try {
133
- regex = new RegExp(`^${template}(?:-\\d+\\.\\d+\\.\\d+)?(?:\\.tgz|\\.tar\\.gz)$`);
134
- }
135
- catch (e) {
136
- throw new Error(`Invalid template regex: ${template}`);
137
- }
138
- // Filter files by regex
139
- const matches = templates.filter(t => regex.test(path.basename(t)));
140
- if (matches.length === 0) {
141
- this.logger.warn(`No matching template path found for ${template}`);
142
- return undefined;
143
- }
144
- // Pick the longest match (as in the shell script: sort by length descending)
145
- matches.sort((a, b) => b.length - a.length);
146
- const templatePath = matches[0];
147
- if (!templatePath) {
148
- this.logger.warn(`No matching template path found for ${template}`);
149
- return undefined;
150
- }
151
- return path.normalize(templatePath);
152
- }
153
- /**
154
- * Get a list of available Unity project templates.
155
- * @returns An array of available template file names.
156
- */
157
- GetAvailableTemplates() {
158
- if (this.version.isLessThan('2019.0.0')) {
159
- this.logger.warn(`Unity version ${this.version.toString()} does not support project templates.`);
160
- return [];
161
- }
162
- let templateDir;
163
- let editorRoot = path.dirname(this.editorPath);
164
- if (process.platform === 'darwin') {
165
- templateDir = path.join(path.dirname(editorRoot), 'Resources', 'PackageManager', 'ProjectTemplates');
166
- }
167
- else {
168
- templateDir = path.join(editorRoot, 'Data', 'Resources', 'PackageManager', 'ProjectTemplates');
169
- }
170
- this.logger.debug(`Looking for templates in: ${templateDir}`);
171
- if (!fs.existsSync(templateDir) ||
172
- !fs.statSync(templateDir).isDirectory()) {
173
- return [];
174
- }
175
- const templates = [];
176
- const entries = fs.readdirSync(templateDir, { withFileTypes: true });
177
- for (const entry of entries) {
178
- if (entry.isFile() && (entry.name.endsWith('.tgz') || entry.name.endsWith('.tar.gz'))) {
179
- templates.push(path.join(templateDir, entry.name));
180
- }
181
- }
182
- this.logger.debug(`Found ${templates.length} templates:\n${templates.map(t => ` - ${t}`).join('\n')}`);
183
- return templates;
184
- }
185
123
  /**
186
124
  * Scrubs sensitive command-line arguments for safe logging.
187
125
  * Replaces values for sensitive flags like -username, -password, etc. with [REDACTED].
@@ -189,7 +127,7 @@ class UnityEditor {
189
127
  * @returns A new array with sensitive values redacted.
190
128
  */
191
129
  scrubSensitiveArgs(args) {
192
- const sensitiveFlags = ['-username', '-password', '-cloudOrganization', '-serial'];
130
+ const sensitiveFlags = UnityEditor.SENSITIVE_FLAGS;
193
131
  const scrubbedArgs = [];
194
132
  for (let i = 0; i < args.length; i++) {
195
133
  const arg = args[i];
@@ -210,17 +148,55 @@ class UnityEditor {
210
148
  * @throws Will throw an error if the Unity Editor fails to start or exits with a non-zero code.
211
149
  */
212
150
  async Run(command) {
151
+ try {
152
+ await this.runEditor(command, true);
153
+ }
154
+ catch (error) {
155
+ if (!(error instanceof UnityRunRejectedError)) {
156
+ throw error;
157
+ }
158
+ // unity run refused the arguments before it started the editor, so launching directly runs it once
159
+ this.logger.warn(`${error.message}\nLaunching the editor directly instead.`);
160
+ await this.runEditor(command, false);
161
+ }
162
+ }
163
+ async runEditor(command, allowUnityRun) {
213
164
  let isCancelled = false;
214
165
  let exitCode = undefined;
215
166
  let procInfo = null;
216
167
  let logTail = null;
217
168
  let unityProcess;
169
+ let unityRunOutput = undefined;
170
+ let editorLogPath = undefined;
171
+ const editorRootPath = this.editorRootPath;
172
+ let runStartedAt = 0;
173
+ let runPaths = [];
174
+ // the helpers the editor starts (shader compiler, bee_backend, licensing client) outlive it as orphans, so the
175
+ // sweep looks for this run's own process group (macOS, Linux) or descendants (Windows), never the whole machine:
176
+ // on a shared self-hosted runner another job's editor may run from the same install
218
177
  async function tryKillEditorProcesses() {
219
178
  try {
220
- if (procInfo) {
221
- await (0, utilities_1.KillProcess)(procInfo);
222
- await (0, utilities_1.KillChildProcesses)(procInfo);
179
+ if (!procInfo) {
180
+ return;
181
+ }
182
+ const root = { pid: procInfo.pid, startedAt: runStartedAt };
183
+ const processes = await (0, process_tracker_1.ListProcesses)();
184
+ const owned = new Map((0, process_tracker_1.SelectOwnedProcesses)([root], processes).map(proc => [proc.pid, proc]));
185
+ if (process.platform === 'win32') {
186
+ // a helper whose parent already exited can no longer be traced to the run, so on Windows an
187
+ // editor-folder process started during this run that names this run's project or log counts too
188
+ for (const proc of processes) {
189
+ if ((proc.createdAt ?? 0) >= runStartedAt - 2000 &&
190
+ proc.executablePath && (0, process_tracker_1.IsPathUnder)(proc.executablePath, editorRootPath) &&
191
+ runPaths.some(runPath => proc.commandLine.toLowerCase().includes(runPath.toLowerCase()))) {
192
+ owned.set(proc.pid, proc);
193
+ }
194
+ }
223
195
  }
196
+ // the licensing client is left alone: it may still be saving the license it just updated, and killing it
197
+ // then loses the license for the next run; return-license stops it at the end of the job instead
198
+ const leftovers = [...owned.values()].filter(proc => !(0, process_tracker_1.IsExecutableNamed)(proc, 'Unity.Licensing.Client'));
199
+ await Promise.all(leftovers.map(proc => (0, utilities_1.KillProcess)(proc).catch(() => undefined)));
224
200
  }
225
201
  catch (error) {
226
202
  logging_1.Logger.instance.error(`Failed to kill Unity process: ${error}`);
@@ -268,7 +244,11 @@ class UnityEditor {
268
244
  }
269
245
  }
270
246
  const logPath = (0, utilities_1.GetArgumentValueAsString)('-logFile', command.args);
271
- logTail = (0, unity_logging_1.TailLogFile)(logPath, command.projectPath);
247
+ editorLogPath = logPath;
248
+ // values of sensitive flags are masked in CI and redacted from everything printed from the Editor log
249
+ const sensitiveValues = command.args.filter((_, i) => i > 0 && UnityEditor.SENSITIVE_FLAGS.includes(command.args[i - 1]));
250
+ sensitiveValues.forEach(value => this.logger.maskCredential(value));
251
+ logTail = (0, unity_logging_1.TailLogFile)(logPath, command.projectPath, sensitiveValues);
272
252
  // Scrub sensitive arguments before logging
273
253
  const scrubbedArgs = this.scrubSensitiveArgs(command.args);
274
254
  const commandStr = `\x1b[34m${this.editorPath} ${scrubbedArgs.join(' ')}\x1b[0m`;
@@ -281,14 +261,31 @@ class UnityEditor {
281
261
  : undefined;
282
262
  const baseEditorEnv = {
283
263
  ...process.env,
284
- UNITY_THISISABUILDMACHINE: '1',
285
264
  DISABLE_EMBEDDED_BUILD_PIPELINE_PLUGIN_LOGGING: '1',
286
265
  ...(linuxEnvOverrides ?? {})
287
266
  };
288
- if (process.platform === 'linux' &&
267
+ const unityCli = allowUnityRun ? await this.getUnityCliForRun(command) : undefined;
268
+ runPaths = [logPath, ...(command.projectPath ? [command.projectPath] : [])];
269
+ runStartedAt = Date.now();
270
+ if (unityCli) {
271
+ const runArgs = UnityEditor.GetUnityRunArgs(this.editorPath, command.projectPath, logPath, command.args);
272
+ this.logger.debug(`Launching through the Unity CLI: ${unityCli.executable} ${this.scrubSensitiveArgs(runArgs).join(' ')}`);
273
+ unityRunOutput = '';
274
+ const child = (0, child_process_1.spawn)(unityCli.executable, runArgs, {
275
+ stdio: ['ignore', 'pipe', 'pipe'],
276
+ ...(0, process_tracker_1.OwnedSpawnOptions)(),
277
+ env: baseEditorEnv
278
+ });
279
+ const collect = (data) => { unityRunOutput += data.toString(); };
280
+ child.stdout.on('data', collect);
281
+ child.stderr.on('data', collect);
282
+ unityProcess = child;
283
+ }
284
+ else if (process.platform === 'linux' &&
289
285
  !command.args.includes('-nographics')) {
290
286
  unityProcess = (0, child_process_1.spawn)('xvfb-run', [this.editorPath, ...command.args], {
291
287
  stdio: ['ignore', 'ignore', 'ignore'],
288
+ ...(0, process_tracker_1.OwnedSpawnOptions)(),
292
289
  env: {
293
290
  ...baseEditorEnv,
294
291
  DISPLAY: baseEditorEnv.DISPLAY || ':99'
@@ -300,12 +297,14 @@ class UnityEditor {
300
297
  this.version.architecture === 'X86_64') { // Force the Unity Editor to run under Rosetta 2 on Apple Silicon Macs if the editor is x86_64
301
298
  unityProcess = (0, child_process_1.spawn)('arch', ['-x86_64', this.editorPath, ...command.args], {
302
299
  stdio: ['ignore', 'ignore', 'ignore'],
300
+ ...(0, process_tracker_1.OwnedSpawnOptions)(),
303
301
  env: baseEditorEnv
304
302
  });
305
303
  }
306
304
  else {
307
305
  unityProcess = (0, child_process_1.spawn)(this.editorPath, command.args, {
308
306
  stdio: ['ignore', 'ignore', 'ignore'],
307
+ ...(0, process_tracker_1.OwnedSpawnOptions)(),
309
308
  env: baseEditorEnv
310
309
  });
311
310
  }
@@ -315,11 +314,29 @@ class UnityEditor {
315
314
  process.once('SIGINT', onCancel);
316
315
  process.once('SIGTERM', onCancel);
317
316
  procInfo = { pid: unityProcess.pid, ppid: process.pid, name: this.editorPath };
317
+ // the licensing client the editor starts is left running after the run; recording the editor lets
318
+ // return-license find and stop it at the end of the job
319
+ (0, process_tracker_1.TrackOwnedProcess)(unityProcess, runStartedAt);
318
320
  this.logger.debug(`Unity process started with pid: ${procInfo.pid}`);
319
321
  exitCode = await new Promise((resolve, reject) => {
320
- unityProcess.on('close', (code) => {
322
+ // the editor can start a licensing client that outlives it and inherits unity run's piped
323
+ // stdout and stderr, so 'close' may never fire; settle on 'exit' and stop reading the pipes shortly after
324
+ let settled = false;
325
+ const settle = (code) => {
326
+ if (settled) {
327
+ return;
328
+ }
329
+ settled = true;
321
330
  logTail?.stopLogTail();
322
331
  resolve(code === null ? 1 : code);
332
+ };
333
+ unityProcess.on('close', settle);
334
+ unityProcess.on('exit', (code) => {
335
+ setTimeout(() => {
336
+ unityProcess.stdout?.destroy();
337
+ unityProcess.stderr?.destroy();
338
+ settle(code);
339
+ }, 1000);
323
340
  });
324
341
  unityProcess.on('error', (error) => {
325
342
  this.logger.error(`Unity process error: ${error}`);
@@ -343,6 +360,21 @@ class UnityEditor {
343
360
  this.logger.endGroup();
344
361
  if (!isCancelled) {
345
362
  await tryKillEditorProcesses();
363
+ if (exitCode !== undefined && exitCode !== 0 && unityRunOutput) {
364
+ // unity run can echo arguments back, so values of sensitive flags are redacted the same way as the logged command
365
+ const sensitiveValues = command.args.filter((_, i) => i > 0 && UnityEditor.SENSITIVE_FLAGS.includes(command.args[i - 1]));
366
+ const output = (0, utilities_1.redactSensitiveLiterals)(unityRunOutput, sensitiveValues)
367
+ .split(/\r?\n/).filter(line => line.length > 0 && !line.includes('<claude-code-hint')).join('\n');
368
+ if (output.includes('conflicts with a reserved Unity flag')) {
369
+ throw new UnityRunRejectedError(`unity run rejected the editor arguments:\n${output}`);
370
+ }
371
+ if (output.length > 0) {
372
+ this.logger.info(`unity run output:\n${output}`);
373
+ }
374
+ }
375
+ if (exitCode !== undefined && exitCode !== 0) {
376
+ await this.printFailureRecap(logTail, editorLogPath);
377
+ }
346
378
  if (exitCode === undefined) {
347
379
  throw Error('Failed to start Unity!');
348
380
  }
@@ -350,8 +382,103 @@ class UnityEditor {
350
382
  throw Error(`Unity failed with exit code ${exitCode}`);
351
383
  }
352
384
  }
385
+ else {
386
+ // a cancelled run did not finish, so it must not end the command with exit code 0
387
+ throw Error('The Unity run was cancelled');
388
+ }
389
+ }
390
+ }
391
+ /**
392
+ * After a failed run, lists the error lines from the Editor log outside the collapsed log group, so the cause sits
393
+ * next to "Unity failed with exit code N". Stack frames are left out and the list is capped; with no error line,
394
+ * the log's last lines are printed instead. Annotations are not affected.
395
+ */
396
+ async printFailureRecap(logTail, logPath) {
397
+ const maxLines = 100;
398
+ const errorLines = logTail?.errorLines ?? [];
399
+ if (errorLines.length > 0) {
400
+ const total = logTail.errorLineCount();
401
+ const shown = errorLines.slice(0, maxLines);
402
+ const more = total - shown.length;
403
+ this.logger.info(`Unity reported ${total} error line${total === 1 ? '' : 's'}:\n${shown.map(line => ` ${line}`).join('\n')}` +
404
+ (more > 0 ? `\n ... ${more} more in ${logPath ?? 'the Editor log'}` : ''));
405
+ return;
406
+ }
407
+ if (!logPath) {
408
+ return;
409
+ }
410
+ try {
411
+ const lines = (await fs.promises.readFile(logPath, 'utf-8')).split(/\r?\n/).filter(line => line.trim().length > 0);
412
+ const tail = lines.slice(-20);
413
+ if (tail.length > 0) {
414
+ this.logger.info(`No error lines found; the last ${tail.length} lines of ${logPath}:\n${tail.map(line => ` ${line}`).join('\n')}`);
415
+ }
416
+ }
417
+ catch (error) {
418
+ this.logger.debug(`Could not read ${logPath}: ${error}`);
419
+ }
420
+ }
421
+ /**
422
+ * Decides whether a run goes through the official CLI's `unity run`.
423
+ * It needs a project and a -quit argument, and is skipped for editors and hosts it is not verified with:
424
+ * editors older than 2019.1, Linux runs that need xvfb, and x86_64 editors under Rosetta.
425
+ * Set UNITY_CLI_DIRECT_LAUNCH=true to always launch the editor directly.
426
+ */
427
+ async getUnityCliForRun(command) {
428
+ const directLaunch = process.env.UNITY_CLI_DIRECT_LAUNCH?.trim().toLowerCase();
429
+ // unity run always quits the editor, so commands that manage their own shutdown launch directly.
430
+ // Android builds start a Gradle daemon that inherits the editor's output, and unity run waits on that
431
+ // output until the daemon dies, so it never returns; those launch directly too
432
+ const buildTarget = command.args.indexOf('-buildTarget');
433
+ const isAndroidBuild = buildTarget >= 0 && command.args[buildTarget + 1]?.toLowerCase() === 'android';
434
+ if (!command.projectPath ||
435
+ !command.args.includes('-quit') ||
436
+ isAndroidBuild ||
437
+ directLaunch === 'true' || directLaunch === '1' ||
438
+ this.version.isLessThan('2019.1.0') ||
439
+ (process.platform === 'linux' && !command.args.includes('-nographics')) ||
440
+ (process.platform === 'darwin' && process.arch === 'arm64' && this.version.architecture === 'X86_64')) {
441
+ return undefined;
442
+ }
443
+ try {
444
+ return await unity_cli_1.UnityCli.Find();
445
+ }
446
+ catch (error) {
447
+ this.logger.debug(`Launching the editor directly, the Unity CLI was not found: ${error}`);
448
+ return undefined;
353
449
  }
354
450
  }
451
+ /**
452
+ * Builds the `unity run` arguments for an editor command.
453
+ * `unity run` adds -batchmode, -quit, -projectPath and -logFile itself and rejects them after `--`, so those are not forwarded.
454
+ * @param editorPath The editor executable.
455
+ * @param projectPath The Unity project.
456
+ * @param logPath The editor log file, which unity-cli tails itself.
457
+ * @param args The editor arguments.
458
+ */
459
+ static GetUnityRunArgs(editorPath, projectPath, logPath, args) {
460
+ const forwarded = [];
461
+ for (let i = 0; i < args.length; i++) {
462
+ const arg = args[i];
463
+ if (arg === '-projectPath' || arg === '-logFile') {
464
+ i++;
465
+ continue;
466
+ }
467
+ if (arg === '-batchmode' || arg === '-quit') {
468
+ continue;
469
+ }
470
+ forwarded.push(arg);
471
+ }
472
+ return [
473
+ 'run', projectPath,
474
+ // on macOS unity run wants the .app bundle, not the executable inside it
475
+ '--editor-path', editorPath.replace(/(\.app)[\\/]Contents[\\/]MacOS[\\/][^\\/]+$/, '$1'),
476
+ '--log-file', logPath,
477
+ '--no-tail',
478
+ '--',
479
+ ...forwarded
480
+ ];
481
+ }
355
482
  /**
356
483
  * Get or create the Logs directory within the Unity project or current working directory.
357
484
  * @param projectPath The path to the Unity project. If undefined, uses the current working directory.
@@ -483,36 +610,6 @@ class UnityEditor {
483
610
  throw new Error(`Unsupported platform: ${process.platform}`);
484
611
  }
485
612
  }
486
- /**
487
- * Uninstall the Unity Editor.
488
- */
489
- async Uninstall() {
490
- switch (process.platform) {
491
- case 'darwin':
492
- case 'linux':
493
- await (0, utilities_1.Exec)('sudo', [
494
- 'rm', '-rf', this.editorRootPath
495
- ], { silent: true, showCommand: true });
496
- break;
497
- case 'win32':
498
- const editorDir = path.dirname(this.editorPath);
499
- const uninstallPath = path.join(editorDir, 'Uninstall.exe');
500
- await fs.promises.access(uninstallPath, fs.constants.R_OK | fs.constants.X_OK);
501
- await (0, utilities_1.Exec)('powershell', [
502
- '-NoProfile',
503
- '-Command',
504
- `Start-Process -FilePath "${uninstallPath}" -ArgumentList "/S" -Wait`
505
- ], { silent: true, showCommand: true });
506
- // delete the editor root directory if it still exists
507
- await (0, utilities_1.DeleteDirectory)(editorDir);
508
- if (this.version.isLegacy()) {
509
- // delete the MonoDevelop that is a sibling of the Unity editor directory
510
- const monoDevelopDir = path.join(path.dirname(editorDir), 'MonoDevelop');
511
- await (0, utilities_1.DeleteDirectory)(monoDevelopDir);
512
- }
513
- break;
514
- }
515
- }
516
613
  }
517
614
  exports.UnityEditor = UnityEditor;
518
615
  //# sourceMappingURL=unity-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unity-editor.js","sourceRoot":"","sources":["../src/unity-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unity-editor.js","sourceRoot":"","sources":["../src/unity-editor.ts"],"names":[],"mappings":"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"}