@theia/terminal 1.66.0-next.44 → 1.66.0-next.73
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell-terminal-server.d.ts","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAe,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAmB,MAAM,yBAAyB,CAAC;AAG1E,OAAO,EACH,4CAA4C,EAA+C,yCAAyC,EACpI,oBAAoB,EAAE,2BAA2B,EACpD,MACQ,mCAAmC,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAC;AAa3F,qBACa,mBAAoB,SAAQ,kBAAmB,YAAW,oBAAoB;IAMtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB;IAL3D,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEvE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAsB;gBAGzD,YAAY,EAAE,mBAAmB,EACzD,cAAc,EAAE,cAAc,EAClB,MAAM,EAAE,OAAO;IAIjD,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBnE,OAAO,CAAC,eAAe;IAoBhB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCzE,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IA4BnF,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAUrD,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAC3E,UAAU,EAAE,yCAAyC,GAAG,IAAI;IAKhE,OAAO,CAAC,eAAe;IASvB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAKnD,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAoB9B,0CAA0C,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAcrH,oBAAoB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,yCAAyC,CAAC,EAAE,CAAC;CAShH"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShellTerminalServer = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
2
5
|
// *****************************************************************************
|
|
3
6
|
// Copyright (C) 2017 Ericsson and others.
|
|
4
7
|
//
|
|
@@ -14,9 +17,7 @@
|
|
|
14
17
|
//
|
|
15
18
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
19
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
exports.ShellTerminalServer = void 0;
|
|
19
|
-
const tslib_1 = require("tslib");
|
|
20
|
+
const child_process_1 = require("child_process");
|
|
20
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
22
|
const logger_1 = require("@theia/core/lib/common/logger");
|
|
22
23
|
const environment_utils_1 = require("@theia/core/lib/node/environment-utils");
|
|
@@ -73,10 +74,23 @@ let ShellTerminalServer = class ShellTerminalServer extends base_terminal_server
|
|
|
73
74
|
if (processId) {
|
|
74
75
|
// if shell has at least one child process, assume that shell is busy
|
|
75
76
|
if (os_1.isWindows) {
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
return new Promise(resolve => {
|
|
78
|
+
(0, child_process_1.exec)('powershell -Command "Get-CimInstance Win32_Process | Select-Object ProcessId, ParentProcessId | ConvertTo-Json"', (error, stdout) => {
|
|
79
|
+
if (error) {
|
|
80
|
+
this.logger.error(`Failed to get Windows process list: ${error}`);
|
|
81
|
+
return resolve(true); // assume busy on error
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const processes = JSON.parse(stdout);
|
|
85
|
+
const hasChild = processes.some(proc => proc.ParentProcessId === processId);
|
|
86
|
+
return resolve(hasChild);
|
|
87
|
+
}
|
|
88
|
+
catch (parseError) {
|
|
89
|
+
this.logger.error(`Failed to parse process list JSON: ${parseError}`);
|
|
90
|
+
return resolve(true); // assume busy on parse error
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
80
94
|
}
|
|
81
95
|
else {
|
|
82
96
|
return this.spawnAsPromised('/usr/bin/pgrep', ['-lP', String(processId)]).then(stdout => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-terminal-server.js","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell-terminal-server.js","sourceRoot":"","sources":["../../src/node/shell-terminal-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/terminal",
|
|
3
|
-
"version": "1.66.0-next.
|
|
3
|
+
"version": "1.66.0-next.73+6d82794da",
|
|
4
4
|
"description": "Theia - Terminal Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.66.0-next.
|
|
7
|
-
"@theia/editor": "1.66.0-next.
|
|
8
|
-
"@theia/file-search": "1.66.0-next.
|
|
9
|
-
"@theia/filesystem": "1.66.0-next.
|
|
10
|
-
"@theia/process": "1.66.0-next.
|
|
11
|
-
"@theia/variable-resolver": "1.66.0-next.
|
|
12
|
-
"@theia/workspace": "1.66.0-next.
|
|
6
|
+
"@theia/core": "1.66.0-next.73+6d82794da",
|
|
7
|
+
"@theia/editor": "1.66.0-next.73+6d82794da",
|
|
8
|
+
"@theia/file-search": "1.66.0-next.73+6d82794da",
|
|
9
|
+
"@theia/filesystem": "1.66.0-next.73+6d82794da",
|
|
10
|
+
"@theia/process": "1.66.0-next.73+6d82794da",
|
|
11
|
+
"@theia/variable-resolver": "1.66.0-next.73+6d82794da",
|
|
12
|
+
"@theia/workspace": "1.66.0-next.73+6d82794da",
|
|
13
13
|
"tslib": "^2.6.2",
|
|
14
14
|
"xterm": "^5.3.0",
|
|
15
15
|
"xterm-addon-fit": "^0.8.0",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"nyc": {
|
|
56
56
|
"extends": "../../configs/nyc.json"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "6d82794da24e16f75d70eaac3a4178a29e822e82"
|
|
59
59
|
}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
//
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
|
+
import { exec } from 'child_process';
|
|
16
17
|
|
|
17
18
|
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
18
19
|
import { ILogger } from '@theia/core/lib/common/logger';
|
|
@@ -37,6 +38,11 @@ interface SerializedExtensionEnvironmentVariableCollection {
|
|
|
37
38
|
collection: SerializableEnvironmentVariableCollection,
|
|
38
39
|
}
|
|
39
40
|
|
|
41
|
+
interface WindowsProcess {
|
|
42
|
+
ProcessId: number;
|
|
43
|
+
ParentProcessId: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
40
46
|
@injectable()
|
|
41
47
|
export class ShellTerminalServer extends BaseTerminalServer implements IShellTerminalServer {
|
|
42
48
|
@inject(EnvironmentUtils) protected environmentUtils: EnvironmentUtils;
|
|
@@ -90,10 +96,26 @@ export class ShellTerminalServer extends BaseTerminalServer implements IShellTer
|
|
|
90
96
|
if (processId) {
|
|
91
97
|
// if shell has at least one child process, assume that shell is busy
|
|
92
98
|
if (isWindows) {
|
|
93
|
-
return
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
return new Promise(resolve => {
|
|
100
|
+
exec(
|
|
101
|
+
'powershell -Command "Get-CimInstance Win32_Process | Select-Object ProcessId, ParentProcessId | ConvertTo-Json"',
|
|
102
|
+
(error, stdout) => {
|
|
103
|
+
if (error) {
|
|
104
|
+
this.logger.error(`Failed to get Windows process list: ${error}`);
|
|
105
|
+
return resolve(true); // assume busy on error
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
const processes: WindowsProcess[] = JSON.parse(stdout);
|
|
110
|
+
const hasChild = processes.some(proc => proc.ParentProcessId === processId);
|
|
111
|
+
return resolve(hasChild);
|
|
112
|
+
} catch (parseError) {
|
|
113
|
+
this.logger.error(`Failed to parse process list JSON: ${parseError}`);
|
|
114
|
+
return resolve(true); // assume busy on parse error
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
);
|
|
118
|
+
});
|
|
97
119
|
} else {
|
|
98
120
|
return this.spawnAsPromised('/usr/bin/pgrep', ['-lP', String(processId)]).then(stdout => {
|
|
99
121
|
const r = stdout.trim();
|