@rage-against-the-pixel/unity-cli 1.0.13 → 1.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.
- package/dist/android-sdk.js +11 -4
- package/dist/android-sdk.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/license-client.js +15 -8
- package/dist/license-client.js.map +1 -1
- package/dist/logging.d.ts +2 -0
- package/dist/logging.js +60 -0
- package/dist/logging.js.map +1 -1
- package/dist/unity-editor.d.ts +21 -3
- package/dist/unity-editor.js +110 -143
- package/dist/unity-editor.js.map +1 -1
- package/dist/unity-hub.js +42 -37
- package/dist/unity-hub.js.map +1 -1
- package/dist/utilities.d.ts +56 -7
- package/dist/utilities.js +279 -52
- package/dist/utilities.js.map +1 -1
- package/package.json +16 -16
package/dist/utilities.d.ts
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
* @returns The first matching file path.
|
|
5
5
|
*/
|
|
6
6
|
export declare function ResolveGlobToPath(globs: string[]): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Prompts the user for input, masking the input with asterisks.
|
|
9
|
+
* @param prompt The prompt message to display.
|
|
10
|
+
* @returns The user input as a string.
|
|
11
|
+
*/
|
|
7
12
|
export declare function PromptForSecretInput(prompt: string): Promise<string>;
|
|
8
13
|
export type ExecOptions = {
|
|
9
14
|
silent?: boolean;
|
|
@@ -56,13 +61,6 @@ export interface ProcInfo {
|
|
|
56
61
|
ppid: number;
|
|
57
62
|
name: string;
|
|
58
63
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Attempts to kill a process with the given ProcInfo.
|
|
61
|
-
* @param procInfo The process information containing the PID.
|
|
62
|
-
* @param signal The signal to use for killing the process. Defaults to 'SIGTERM'.
|
|
63
|
-
* @returns The PID of the killed process, or undefined if no process was killed.
|
|
64
|
-
*/
|
|
65
|
-
export declare function TryKillProcess(procInfo: ProcInfo, signal?: NodeJS.Signals): Promise<number | undefined>;
|
|
66
64
|
/**
|
|
67
65
|
* Reads a PID file and returns the process information.
|
|
68
66
|
* @param pidFilePath The path to the PID file.
|
|
@@ -70,6 +68,57 @@ export declare function TryKillProcess(procInfo: ProcInfo, signal?: NodeJS.Signa
|
|
|
70
68
|
* @remarks The PID file is deleted after reading.
|
|
71
69
|
*/
|
|
72
70
|
export declare function ReadPidFile(pidFilePath: string): Promise<ProcInfo | undefined>;
|
|
71
|
+
/**
|
|
72
|
+
* Delays execution for a specified number of milliseconds.
|
|
73
|
+
* @param ms The number of milliseconds to delay.
|
|
74
|
+
* @returns A promise that resolves after the delay.
|
|
75
|
+
*/
|
|
76
|
+
export declare function Delay(ms: number): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Result of the tailLogFile function containing cleanup resources.
|
|
79
|
+
*/
|
|
80
|
+
export interface LogTailResult {
|
|
81
|
+
/** Promise that resolves when log tailing completes */
|
|
82
|
+
tailPromise: Promise<void>;
|
|
83
|
+
/** Function to signal that log tailing should end */
|
|
84
|
+
stopLogTail: () => void;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Tails a log file using fs.watch and ReadStream for efficient reading.
|
|
88
|
+
* @param logPath The path to the log file to tail.
|
|
89
|
+
* @returns An object containing the tail promise and signalEnd function.
|
|
90
|
+
*/
|
|
91
|
+
export declare function TailLogFile(logPath: string): LogTailResult;
|
|
92
|
+
/**
|
|
93
|
+
* Waits for a file to be created and become readable within a timeout.
|
|
94
|
+
* @param filePath The path of the file to wait for.
|
|
95
|
+
* @param timeout The maximum time to wait in milliseconds. Default is 30000 (30 seconds).
|
|
96
|
+
*/
|
|
97
|
+
export declare function WaitForFileToBeCreatedAndReadable(filePath: string, timeout?: number): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Waits for a file to be unlocked (not exclusively locked by another process).
|
|
100
|
+
* If the file does not exist, it is considered unlocked.
|
|
101
|
+
* If the file exists, attempts to open it with read/write access.
|
|
102
|
+
* @param filePath The path of the file to wait for.
|
|
103
|
+
* @param timeout The maximum time to wait in milliseconds. Default is 30000 (30 seconds).
|
|
104
|
+
* @returns A promise that resolves when the file is unlocked.
|
|
105
|
+
*/
|
|
106
|
+
export declare function WaitForFileToBeUnlocked(filePath: string, timeout?: number): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Tests if a file can be opened with the specified flags.
|
|
109
|
+
* @remarks If the file does not exist, it returns false.
|
|
110
|
+
* @param filePath The path of the file to test.
|
|
111
|
+
* @param flags The flags to use when opening the file (e.g., fs.constants.O_RDONLY).
|
|
112
|
+
* @returns A promise that resolves to true if the file can be opened, false otherwise.
|
|
113
|
+
*/
|
|
114
|
+
export declare function TestFileAccess(filePath: string, flags: number): Promise<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* Attempts to kill a process with the given ProcInfo.
|
|
117
|
+
* Escalates to SIGKILL or taskkill if the process does not exit after 5 seconds.
|
|
118
|
+
* @param procInfo The process information containing the PID.
|
|
119
|
+
* @param signal The signal to use for killing the process. Defaults to 'SIGTERM'.
|
|
120
|
+
*/
|
|
121
|
+
export declare function KillProcess(procInfo: ProcInfo, signal?: NodeJS.Signals): Promise<void>;
|
|
73
122
|
/**
|
|
74
123
|
* Kills all child processes of the given process.
|
|
75
124
|
* @param procInfo The process information of the parent process.
|
package/dist/utilities.js
CHANGED
|
@@ -41,15 +41,20 @@ exports.DeleteDirectory = DeleteDirectory;
|
|
|
41
41
|
exports.ReadFileContents = ReadFileContents;
|
|
42
42
|
exports.GetTempDir = GetTempDir;
|
|
43
43
|
exports.GetArgumentValueAsString = GetArgumentValueAsString;
|
|
44
|
-
exports.TryKillProcess = TryKillProcess;
|
|
45
44
|
exports.ReadPidFile = ReadPidFile;
|
|
45
|
+
exports.Delay = Delay;
|
|
46
|
+
exports.TailLogFile = TailLogFile;
|
|
47
|
+
exports.WaitForFileToBeCreatedAndReadable = WaitForFileToBeCreatedAndReadable;
|
|
48
|
+
exports.WaitForFileToBeUnlocked = WaitForFileToBeUnlocked;
|
|
49
|
+
exports.TestFileAccess = TestFileAccess;
|
|
50
|
+
exports.KillProcess = KillProcess;
|
|
46
51
|
exports.KillChildProcesses = KillChildProcesses;
|
|
47
|
-
const
|
|
48
|
-
const glob = __importStar(require("glob"));
|
|
52
|
+
const os = __importStar(require("os"));
|
|
49
53
|
const fs = __importStar(require("fs"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
50
55
|
const https = __importStar(require("https"));
|
|
51
56
|
const readline = __importStar(require("readline"));
|
|
52
|
-
const
|
|
57
|
+
const glob_1 = require("glob");
|
|
53
58
|
const child_process_1 = require("child_process");
|
|
54
59
|
const logging_1 = require("./logging");
|
|
55
60
|
const logger = logging_1.Logger.instance;
|
|
@@ -60,13 +65,18 @@ const logger = logging_1.Logger.instance;
|
|
|
60
65
|
*/
|
|
61
66
|
async function ResolveGlobToPath(globs) {
|
|
62
67
|
const globPath = path.join(...globs).split(path.sep).join('/');
|
|
63
|
-
const paths = await
|
|
68
|
+
const paths = await (0, glob_1.glob)(globPath);
|
|
64
69
|
for (const path of paths) {
|
|
65
70
|
await fs.promises.access(path, fs.constants.R_OK);
|
|
66
71
|
return path;
|
|
67
72
|
}
|
|
68
73
|
throw new Error(`No accessible file found for glob pattern: ${path.normalize(globPath)}`);
|
|
69
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Prompts the user for input, masking the input with asterisks.
|
|
77
|
+
* @param prompt The prompt message to display.
|
|
78
|
+
* @returns The user input as a string.
|
|
79
|
+
*/
|
|
70
80
|
async function PromptForSecretInput(prompt) {
|
|
71
81
|
return new Promise((resolve) => {
|
|
72
82
|
const rl = readline.createInterface({
|
|
@@ -99,20 +109,6 @@ async function Exec(command, args, options = { silent: false, showCommand: true
|
|
|
99
109
|
const isDebug = logger.logLevel === logging_1.LogLevel.DEBUG;
|
|
100
110
|
const isSilent = isDebug ? false : options.silent ? options.silent : false;
|
|
101
111
|
const mustShowCommand = isDebug ? true : options.showCommand ? options.showCommand : false;
|
|
102
|
-
function processOutput(data) {
|
|
103
|
-
try {
|
|
104
|
-
const chunk = data.toString();
|
|
105
|
-
output += chunk;
|
|
106
|
-
if (!isSilent && chunk.trim().length > 0) {
|
|
107
|
-
process.stdout.write(chunk);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
if (error.code !== 'EPIPE') {
|
|
112
|
-
throw error;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
112
|
if (mustShowCommand) {
|
|
117
113
|
const commandStr = `\x1b[34m${command} ${args.join(' ')}\x1b[0m`;
|
|
118
114
|
if (isSilent) {
|
|
@@ -135,16 +131,62 @@ async function Exec(command, args, options = { silent: false, showCommand: true
|
|
|
135
131
|
const sigtermHandler = () => child.kill('SIGTERM');
|
|
136
132
|
process.once('SIGINT', sigintHandler);
|
|
137
133
|
process.once('SIGTERM', sigtermHandler);
|
|
134
|
+
let hasCleanedUpListeners = false;
|
|
135
|
+
function removeListeners() {
|
|
136
|
+
if (hasCleanedUpListeners) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
hasCleanedUpListeners = true;
|
|
140
|
+
process.removeListener('SIGINT', sigintHandler);
|
|
141
|
+
process.removeListener('SIGTERM', sigtermHandler);
|
|
142
|
+
}
|
|
143
|
+
let lineBuffer = ''; // Buffer for incomplete lines
|
|
144
|
+
function processOutput(data) {
|
|
145
|
+
try {
|
|
146
|
+
const chunk = data.toString();
|
|
147
|
+
const fullChunk = lineBuffer + chunk;
|
|
148
|
+
const lines = fullChunk.split('\n') // split by newline
|
|
149
|
+
.map(line => line.replace(/\r$/, '')) // remove trailing carriage return
|
|
150
|
+
.filter(line => line.length > 0); // filter out empty lines
|
|
151
|
+
if (!chunk.endsWith('\n')) {
|
|
152
|
+
lineBuffer = lines.pop() || '';
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
lineBuffer = '';
|
|
156
|
+
}
|
|
157
|
+
for (const line of lines) {
|
|
158
|
+
output += `${line}\n`;
|
|
159
|
+
if (!isSilent) {
|
|
160
|
+
process.stdout.write(`${line}\n`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
if (error.code !== 'EPIPE') {
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
138
170
|
child.stdout.on('data', processOutput);
|
|
139
171
|
child.stderr.on('data', processOutput);
|
|
140
172
|
child.on('error', (error) => {
|
|
141
|
-
|
|
142
|
-
process.removeListener('SIGTERM', sigtermHandler);
|
|
173
|
+
removeListeners();
|
|
143
174
|
reject(error);
|
|
144
175
|
});
|
|
145
176
|
child.on('close', (code) => {
|
|
146
|
-
|
|
147
|
-
|
|
177
|
+
removeListeners();
|
|
178
|
+
// Flush any remaining buffered content
|
|
179
|
+
if (lineBuffer.length > 0) {
|
|
180
|
+
const lines = lineBuffer.split('\n') // split by newline
|
|
181
|
+
.map(line => line.replace(/\r$/, '')) // remove trailing carriage return
|
|
182
|
+
.filter(line => line.length > 0); // filter out empty lines
|
|
183
|
+
for (const line of lines) {
|
|
184
|
+
output += `${line}\n`;
|
|
185
|
+
if (!isSilent) {
|
|
186
|
+
process.stdout.write(`${line}\n`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
148
190
|
resolve(code === null ? 0 : code);
|
|
149
191
|
});
|
|
150
192
|
});
|
|
@@ -247,28 +289,6 @@ function GetArgumentValueAsString(value, args) {
|
|
|
247
289
|
}
|
|
248
290
|
return args[index + 1];
|
|
249
291
|
}
|
|
250
|
-
/**
|
|
251
|
-
* Attempts to kill a process with the given ProcInfo.
|
|
252
|
-
* @param procInfo The process information containing the PID.
|
|
253
|
-
* @param signal The signal to use for killing the process. Defaults to 'SIGTERM'.
|
|
254
|
-
* @returns The PID of the killed process, or undefined if no process was killed.
|
|
255
|
-
*/
|
|
256
|
-
async function TryKillProcess(procInfo, signal = 'SIGTERM') {
|
|
257
|
-
let pid;
|
|
258
|
-
try {
|
|
259
|
-
logger.ci(`Killing process "${procInfo.name}" with pid: ${procInfo.pid}`);
|
|
260
|
-
process.kill(procInfo.pid, signal);
|
|
261
|
-
pid = procInfo.pid;
|
|
262
|
-
}
|
|
263
|
-
catch (error) {
|
|
264
|
-
const nodeJsException = error;
|
|
265
|
-
const errorCode = nodeJsException?.code;
|
|
266
|
-
if (errorCode !== 'ENOENT' && errorCode !== 'ESRCH') {
|
|
267
|
-
logger.error(`Failed to kill process:\n${JSON.stringify(error)}`);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return pid;
|
|
271
|
-
}
|
|
272
292
|
/**
|
|
273
293
|
* Reads a PID file and returns the process information.
|
|
274
294
|
* @param pidFilePath The path to the PID file.
|
|
@@ -304,12 +324,217 @@ async function ReadPidFile(pidFilePath) {
|
|
|
304
324
|
}
|
|
305
325
|
return procInfo;
|
|
306
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* Delays execution for a specified number of milliseconds.
|
|
329
|
+
* @param ms The number of milliseconds to delay.
|
|
330
|
+
* @returns A promise that resolves after the delay.
|
|
331
|
+
*/
|
|
332
|
+
async function Delay(ms) {
|
|
333
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Tails a log file using fs.watch and ReadStream for efficient reading.
|
|
337
|
+
* @param logPath The path to the log file to tail.
|
|
338
|
+
* @returns An object containing the tail promise and signalEnd function.
|
|
339
|
+
*/
|
|
340
|
+
function TailLogFile(logPath) {
|
|
341
|
+
let logEnded = false;
|
|
342
|
+
let lastSize = 0;
|
|
343
|
+
const logPollingInterval = 250;
|
|
344
|
+
async function readNewLogContent() {
|
|
345
|
+
try {
|
|
346
|
+
const stats = await fs.promises.stat(logPath);
|
|
347
|
+
if (stats.size < lastSize) {
|
|
348
|
+
lastSize = 0;
|
|
349
|
+
}
|
|
350
|
+
if (stats.size > lastSize) {
|
|
351
|
+
const bytesToRead = stats.size - lastSize;
|
|
352
|
+
const buffer = Buffer.alloc(bytesToRead);
|
|
353
|
+
let fh;
|
|
354
|
+
try {
|
|
355
|
+
fh = await fs.promises.open(logPath, fs.constants.O_RDONLY);
|
|
356
|
+
await fh.read(buffer, 0, bytesToRead, lastSize);
|
|
357
|
+
}
|
|
358
|
+
finally {
|
|
359
|
+
await fh?.close();
|
|
360
|
+
}
|
|
361
|
+
lastSize = stats.size;
|
|
362
|
+
if (bytesToRead > 0) {
|
|
363
|
+
const chunk = buffer.toString('utf8');
|
|
364
|
+
try {
|
|
365
|
+
process.stdout.write(chunk);
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
if (error.code !== 'EPIPE') {
|
|
369
|
+
throw error;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
logger.warn(`Error while tailing log file: ${error}`);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
const tailPromise = new Promise((resolve, reject) => {
|
|
380
|
+
(async () => {
|
|
381
|
+
try {
|
|
382
|
+
while (!logEnded) {
|
|
383
|
+
await Delay(logPollingInterval);
|
|
384
|
+
await readNewLogContent();
|
|
385
|
+
}
|
|
386
|
+
// Final read to capture any remaining content after tailing stops
|
|
387
|
+
await WaitForFileToBeUnlocked(logPath, 10000);
|
|
388
|
+
await readNewLogContent();
|
|
389
|
+
try {
|
|
390
|
+
process.stdout.write('\n');
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
if (error.code !== 'EPIPE') {
|
|
394
|
+
logger.warn(`Error while writing log tail: ${error}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
resolve();
|
|
398
|
+
}
|
|
399
|
+
catch (error) {
|
|
400
|
+
reject(error);
|
|
401
|
+
}
|
|
402
|
+
})();
|
|
403
|
+
});
|
|
404
|
+
function stopLogTail() {
|
|
405
|
+
logEnded = true;
|
|
406
|
+
}
|
|
407
|
+
return { tailPromise, stopLogTail };
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Waits for a file to be created and become readable within a timeout.
|
|
411
|
+
* @param filePath The path of the file to wait for.
|
|
412
|
+
* @param timeout The maximum time to wait in milliseconds. Default is 30000 (30 seconds).
|
|
413
|
+
*/
|
|
414
|
+
async function WaitForFileToBeCreatedAndReadable(filePath, timeout = 30000) {
|
|
415
|
+
const pollInterval = 100;
|
|
416
|
+
const deadline = Date.now() + timeout;
|
|
417
|
+
while (Date.now() < deadline) {
|
|
418
|
+
// test file access by attempting to open the file with read only access
|
|
419
|
+
if (await TestFileAccess(filePath, fs.constants.O_RDONLY)) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
await Delay(pollInterval);
|
|
423
|
+
}
|
|
424
|
+
throw new Error(`Timed out waiting for file to become readable: ${filePath}`);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Waits for a file to be unlocked (not exclusively locked by another process).
|
|
428
|
+
* If the file does not exist, it is considered unlocked.
|
|
429
|
+
* If the file exists, attempts to open it with read/write access.
|
|
430
|
+
* @param filePath The path of the file to wait for.
|
|
431
|
+
* @param timeout The maximum time to wait in milliseconds. Default is 30000 (30 seconds).
|
|
432
|
+
* @returns A promise that resolves when the file is unlocked.
|
|
433
|
+
*/
|
|
434
|
+
async function WaitForFileToBeUnlocked(filePath, timeout = 30000) {
|
|
435
|
+
const pollInterval = 100;
|
|
436
|
+
const deadline = Date.now() + timeout;
|
|
437
|
+
while (Date.now() < deadline) {
|
|
438
|
+
// test file access by attempting to open the file with read/write access
|
|
439
|
+
if (await TestFileAccess(filePath, fs.constants.O_RDWR)) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
await Delay(pollInterval);
|
|
443
|
+
}
|
|
444
|
+
throw new Error(`Timed out waiting for file to be unlocked: ${filePath}`);
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Tests if a file can be opened with the specified flags.
|
|
448
|
+
* @remarks If the file does not exist, it returns false.
|
|
449
|
+
* @param filePath The path of the file to test.
|
|
450
|
+
* @param flags The flags to use when opening the file (e.g., fs.constants.O_RDONLY).
|
|
451
|
+
* @returns A promise that resolves to true if the file can be opened, false otherwise.
|
|
452
|
+
*/
|
|
453
|
+
async function TestFileAccess(filePath, flags) {
|
|
454
|
+
// expect the file to be visible and accessible
|
|
455
|
+
try {
|
|
456
|
+
await fs.promises.access(filePath, fs.constants.F_OK);
|
|
457
|
+
}
|
|
458
|
+
catch (error) {
|
|
459
|
+
return false;
|
|
460
|
+
}
|
|
461
|
+
let fh;
|
|
462
|
+
// try to open the file with the specified flags
|
|
463
|
+
try {
|
|
464
|
+
fh = await fs.promises.open(filePath, flags);
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
catch (error) {
|
|
468
|
+
const code = error && error.code ? error.code : null;
|
|
469
|
+
// These codes indicate the file is temporarily inaccessible (locked/permission) or missing.
|
|
470
|
+
if (code === 'EACCES' || code === 'EPERM' || code === 'EBUSY' || code === 'ETXTBSY' || code === 'ENOENT') {
|
|
471
|
+
return false;
|
|
472
|
+
}
|
|
473
|
+
// Unexpected error, rethrow
|
|
474
|
+
throw error;
|
|
475
|
+
}
|
|
476
|
+
finally {
|
|
477
|
+
await fh?.close();
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Attempts to kill a process with the given ProcInfo.
|
|
482
|
+
* Escalates to SIGKILL or taskkill if the process does not exit after 5 seconds.
|
|
483
|
+
* @param procInfo The process information containing the PID.
|
|
484
|
+
* @param signal The signal to use for killing the process. Defaults to 'SIGTERM'.
|
|
485
|
+
*/
|
|
486
|
+
async function KillProcess(procInfo, signal = 'SIGTERM') {
|
|
487
|
+
try {
|
|
488
|
+
logger.debug(`Killing process [${procInfo.pid}] ${procInfo.name}...`);
|
|
489
|
+
process.kill(procInfo.pid, signal);
|
|
490
|
+
// Immediately check if the process has exited
|
|
491
|
+
try {
|
|
492
|
+
process.kill(procInfo.pid, 0);
|
|
493
|
+
}
|
|
494
|
+
catch {
|
|
495
|
+
logger.debug(`Process [${procInfo.pid}] ${procInfo.name} has exited successfully.`);
|
|
496
|
+
return; // Process has exited
|
|
497
|
+
}
|
|
498
|
+
await Delay(5000); // wait 5 seconds
|
|
499
|
+
try {
|
|
500
|
+
// Check if the process is still running
|
|
501
|
+
process.kill(procInfo.pid, 0);
|
|
502
|
+
}
|
|
503
|
+
catch {
|
|
504
|
+
logger.debug(`Process [${procInfo.pid}] ${procInfo.name} has exited successfully.`);
|
|
505
|
+
return; // Process has exited
|
|
506
|
+
}
|
|
507
|
+
// If the process is still running, escalate to SIGKILL or taskkill to force quit.
|
|
508
|
+
logger.debug(`Process [${procInfo.pid}] ${procInfo.name} did not exit after ${signal}, attempting to force quit...`);
|
|
509
|
+
try {
|
|
510
|
+
if (process.platform === 'win32') {
|
|
511
|
+
const command = `taskkill /PID ${procInfo.pid} /F /T`;
|
|
512
|
+
await Exec('powershell', ['-Command', command], { silent: true, showCommand: false });
|
|
513
|
+
}
|
|
514
|
+
else { // linux and macos
|
|
515
|
+
process.kill(procInfo.pid, 'SIGKILL');
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
catch (error) {
|
|
519
|
+
if (error.code !== 'ENOENT' && error.code !== 'ESRCH') {
|
|
520
|
+
logger.error(`Failed to kill process:\n${JSON.stringify(error)}`);
|
|
521
|
+
throw error;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
if (error.code !== 'ENOENT' && error.code !== 'ESRCH') {
|
|
527
|
+
logger.error(`Failed to kill process:\n${JSON.stringify(error)}`);
|
|
528
|
+
throw error;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
307
532
|
/**
|
|
308
533
|
* Kills all child processes of the given process.
|
|
309
534
|
* @param procInfo The process information of the parent process.
|
|
310
535
|
*/
|
|
311
536
|
async function KillChildProcesses(procInfo) {
|
|
312
|
-
logger.debug(`Killing child processes of ${procInfo.
|
|
537
|
+
logger.debug(`Killing child processes of [${procInfo.pid}] ${procInfo.name}...`);
|
|
313
538
|
try {
|
|
314
539
|
if (process.platform === 'win32') {
|
|
315
540
|
const command = `Get-CimInstance Win32_Process -Filter "ParentProcessId=${procInfo.pid}" | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;
|
|
@@ -318,17 +543,19 @@ async function KillChildProcesses(procInfo) {
|
|
|
318
543
|
else { // linux and macos
|
|
319
544
|
const psOutput = await Exec('ps', ['-eo', 'pid,ppid,comm'], { silent: true, showCommand: false });
|
|
320
545
|
const lines = psOutput.split('\n').slice(1); // Skip header line
|
|
546
|
+
const killPromises = [];
|
|
321
547
|
for (const line of lines) {
|
|
322
|
-
const
|
|
323
|
-
if (
|
|
324
|
-
const pid = parseInt(
|
|
325
|
-
const ppid = parseInt(
|
|
326
|
-
const name =
|
|
548
|
+
const match = line.trim().match(/^(\d+)\s+(\d+)\s+(.*)$/);
|
|
549
|
+
if (match) {
|
|
550
|
+
const pid = parseInt(match[1], 10);
|
|
551
|
+
const ppid = parseInt(match[2], 10);
|
|
552
|
+
const name = match[3].trim();
|
|
327
553
|
if (ppid === procInfo.pid) {
|
|
328
|
-
|
|
554
|
+
killPromises.push(KillProcess({ pid, ppid, name }));
|
|
329
555
|
}
|
|
330
556
|
}
|
|
331
557
|
}
|
|
558
|
+
await Promise.all(killPromises);
|
|
332
559
|
}
|
|
333
560
|
}
|
|
334
561
|
catch (error) {
|
package/dist/utilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rage-against-the-pixel/unity-cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A command line utility for the Unity Game Engine.",
|
|
5
5
|
"author": "RageAgainstThePixel",
|
|
6
6
|
"license": "MIT",
|
|
@@ -48,22 +48,22 @@
|
|
|
48
48
|
"tests": "jest --roots tests"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@electron/asar": "
|
|
52
|
-
"@rage-against-the-pixel/unity-releases-api": "
|
|
53
|
-
"commander": "
|
|
54
|
-
"glob": "
|
|
55
|
-
"semver": "
|
|
56
|
-
"source-map-support": "
|
|
57
|
-
"yaml": "
|
|
51
|
+
"@electron/asar": "4.0.1",
|
|
52
|
+
"@rage-against-the-pixel/unity-releases-api": "1.0.3",
|
|
53
|
+
"commander": "14.0.1",
|
|
54
|
+
"glob": "11.0.3",
|
|
55
|
+
"semver": "7.7.2",
|
|
56
|
+
"source-map-support": "0.5.21",
|
|
57
|
+
"yaml": "2.8.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@types/commander": "
|
|
61
|
-
"@types/jest": "
|
|
62
|
-
"@types/node": "
|
|
63
|
-
"@types/semver": "
|
|
64
|
-
"jest": "
|
|
65
|
-
"ts-jest": "
|
|
66
|
-
"ts-node": "
|
|
67
|
-
"typescript": "
|
|
60
|
+
"@types/commander": "2.12.0",
|
|
61
|
+
"@types/jest": "30.0.0",
|
|
62
|
+
"@types/node": "24.6.2",
|
|
63
|
+
"@types/semver": "7.7.1",
|
|
64
|
+
"jest": "30.2.0",
|
|
65
|
+
"ts-jest": "29.4.4",
|
|
66
|
+
"ts-node": "10.9.2",
|
|
67
|
+
"typescript": "5.9.3"
|
|
68
68
|
}
|
|
69
69
|
}
|