@opensumi/ide-terminal-next 2.14.4 → 2.15.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/lib/browser/component/terminal.view.d.ts.map +1 -1
- package/lib/browser/component/terminal.view.js +7 -1
- package/lib/browser/component/terminal.view.js.map +1 -1
- package/lib/browser/component/terminal.widget.d.ts.map +1 -1
- package/lib/browser/component/terminal.widget.js +12 -3
- package/lib/browser/component/terminal.widget.js.map +1 -1
- package/lib/browser/contribution/index.d.ts +1 -0
- package/lib/browser/contribution/index.d.ts.map +1 -1
- package/lib/browser/contribution/index.js +1 -0
- package/lib/browser/contribution/index.js.map +1 -1
- package/lib/browser/contribution/terminal.preference.d.ts +6 -0
- package/lib/browser/contribution/terminal.preference.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.preference.js +17 -0
- package/lib/browser/contribution/terminal.preference.js.map +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +21 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/terminal.api.d.ts.map +1 -1
- package/lib/browser/terminal.api.js +11 -10
- package/lib/browser/terminal.api.js.map +1 -1
- package/lib/browser/terminal.client.d.ts +33 -16
- package/lib/browser/terminal.client.d.ts.map +1 -1
- package/lib/browser/terminal.client.js +248 -113
- package/lib/browser/terminal.client.js.map +1 -1
- package/lib/browser/terminal.contribution.d.ts +7 -0
- package/lib/browser/terminal.contribution.d.ts.map +1 -0
- package/lib/browser/terminal.contribution.js +32 -0
- package/lib/browser/terminal.contribution.js.map +1 -0
- package/lib/browser/terminal.controller.d.ts +14 -3
- package/lib/browser/terminal.controller.d.ts.map +1 -1
- package/lib/browser/terminal.controller.js +44 -9
- package/lib/browser/terminal.controller.js.map +1 -1
- package/lib/browser/terminal.internal.service.d.ts +6 -2
- package/lib/browser/terminal.internal.service.d.ts.map +1 -1
- package/lib/browser/terminal.internal.service.js +27 -0
- package/lib/browser/terminal.internal.service.js.map +1 -1
- package/lib/browser/terminal.profile.d.ts +28 -0
- package/lib/browser/terminal.profile.d.ts.map +1 -0
- package/lib/browser/terminal.profile.internal.d.ts +16 -0
- package/lib/browser/terminal.profile.internal.d.ts.map +1 -0
- package/lib/browser/terminal.profile.internal.js +106 -0
- package/lib/browser/terminal.profile.internal.js.map +1 -0
- package/lib/browser/terminal.profile.js +146 -0
- package/lib/browser/terminal.profile.js.map +1 -0
- package/lib/browser/terminal.service.d.ts +7 -4
- package/lib/browser/terminal.service.d.ts.map +1 -1
- package/lib/browser/terminal.service.js +35 -19
- package/lib/browser/terminal.service.js.map +1 -1
- package/lib/browser/xterm.d.ts +24 -0
- package/lib/browser/xterm.d.ts.map +1 -0
- package/lib/browser/xterm.js +55 -0
- package/lib/browser/xterm.js.map +1 -0
- package/lib/common/client.d.ts +4 -2
- package/lib/common/client.d.ts.map +1 -1
- package/lib/common/client.js +2 -1
- package/lib/common/client.js.map +1 -1
- package/lib/common/controller.d.ts +17 -1
- package/lib/common/controller.d.ts.map +1 -1
- package/lib/common/controller.js.map +1 -1
- package/lib/common/error.d.ts +8 -0
- package/lib/common/error.d.ts.map +1 -1
- package/lib/common/error.js +5 -1
- package/lib/common/error.js.map +1 -1
- package/lib/common/extension.d.ts +28 -2
- package/lib/common/extension.d.ts.map +1 -1
- package/lib/common/extension.js +6 -1
- package/lib/common/extension.js.map +1 -1
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/preference.d.ts +94 -0
- package/lib/common/preference.d.ts.map +1 -1
- package/lib/common/preference.js +140 -1
- package/lib/common/preference.js.map +1 -1
- package/lib/common/process.d.ts +8 -0
- package/lib/common/process.d.ts.map +1 -0
- package/lib/common/process.js +3 -0
- package/lib/common/process.js.map +1 -0
- package/lib/common/profile.d.ts +101 -0
- package/lib/common/profile.d.ts.map +1 -0
- package/lib/common/profile.js +28 -0
- package/lib/common/profile.js.map +1 -0
- package/lib/common/pty.d.ts +142 -24
- package/lib/common/pty.d.ts.map +1 -1
- package/lib/common/pty.js +2 -2
- package/lib/common/pty.js.map +1 -1
- package/lib/common/service.d.ts +11 -6
- package/lib/common/service.d.ts.map +1 -1
- package/lib/common/service.js.map +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +6 -1
- package/lib/node/index.js.map +1 -1
- package/lib/node/pty.d.ts +29 -15
- package/lib/node/pty.d.ts.map +1 -1
- package/lib/node/pty.js +117 -41
- package/lib/node/pty.js.map +1 -1
- package/lib/node/shell.d.ts +11 -1
- package/lib/node/shell.d.ts.map +1 -1
- package/lib/node/shell.js +89 -9
- package/lib/node/shell.js.map +1 -1
- package/lib/node/{terminal-process.service.d.ts → terminal.process.service.d.ts} +1 -1
- package/lib/node/terminal.process.service.d.ts.map +1 -0
- package/lib/node/{terminal-process.service.js → terminal.process.service.js} +1 -1
- package/lib/node/{terminal-process.service.js.map → terminal.process.service.js.map} +1 -1
- package/lib/node/terminal.profile.service.d.ts +19 -0
- package/lib/node/terminal.profile.service.d.ts.map +1 -0
- package/lib/node/terminal.profile.service.js +229 -0
- package/lib/node/terminal.profile.service.js.map +1 -0
- package/lib/node/terminal.service.client.d.ts +8 -1
- package/lib/node/terminal.service.client.d.ts.map +1 -1
- package/lib/node/terminal.service.client.js +40 -13
- package/lib/node/terminal.service.client.js.map +1 -1
- package/lib/node/terminal.service.d.ts +7 -7
- package/lib/node/terminal.service.d.ts.map +1 -1
- package/lib/node/terminal.service.js +41 -23
- package/lib/node/terminal.service.js.map +1 -1
- package/package.json +15 -15
- package/lib/node/terminal-process.service.d.ts.map +0 -1
package/lib/node/pty.js
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.PtyService = exports.IPtyService =
|
|
7
|
+
exports.PtyService = exports.IPtyService = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
// Some code copied and modified from https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalProcess.ts
|
|
10
10
|
const pty = (0, tslib_1.__importStar)(require("node-pty"));
|
|
11
|
-
exports.pty = pty;
|
|
12
11
|
const osLocale = (0, tslib_1.__importStar)(require("os-locale"));
|
|
13
12
|
const os_1 = (0, tslib_1.__importDefault)(require("os"));
|
|
14
13
|
const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
@@ -18,39 +17,83 @@ const ide_core_node_1 = require("@opensumi/ide-core-node");
|
|
|
18
17
|
const di_1 = require("@opensumi/di");
|
|
19
18
|
const fs_1 = require("fs");
|
|
20
19
|
const path = (0, tslib_1.__importStar)(require("@opensumi/ide-core-common/lib/path"));
|
|
20
|
+
const platform_1 = require("@opensumi/ide-core-common/lib/platform");
|
|
21
21
|
exports.IPtyService = Symbol('IPtyService');
|
|
22
|
-
let PtyService = class PtyService {
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
let PtyService = class PtyService extends ide_core_node_1.Disposable {
|
|
23
|
+
constructor(id, shellLaunchConfig, cols, rows) {
|
|
24
|
+
super();
|
|
25
|
+
this.id = id;
|
|
26
|
+
this.shellLaunchConfig = shellLaunchConfig;
|
|
27
|
+
this._onData = new ide_core_node_1.Emitter();
|
|
28
|
+
this.onData = this._onData.event;
|
|
29
|
+
this._onReady = new ide_core_node_1.Emitter();
|
|
30
|
+
this.onReady = this._onReady.event;
|
|
31
|
+
this._onExit = new ide_core_node_1.Emitter();
|
|
32
|
+
this.onExit = this._onExit.event;
|
|
33
|
+
let name;
|
|
34
|
+
if (platform_1.isWindows) {
|
|
35
|
+
name = path.basename(this.shellLaunchConfig.executable || '');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Using 'xterm-256color' here helps ensure that the majority of Linux distributions will use a
|
|
39
|
+
// color prompt as defined in the default ~/.bashrc file.
|
|
40
|
+
name = 'xterm-256color';
|
|
41
|
+
}
|
|
42
|
+
this._initialCwd = this.parseCwd();
|
|
43
|
+
this._ptyOptions = {
|
|
44
|
+
name,
|
|
45
|
+
cwd: this._initialCwd,
|
|
46
|
+
env: shellLaunchConfig.env,
|
|
47
|
+
cols,
|
|
48
|
+
rows,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
get pty() {
|
|
52
|
+
return this._ptyProcess;
|
|
53
|
+
}
|
|
54
|
+
async kill() {
|
|
55
|
+
if (this.disposed) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
if (this._ptyProcess) {
|
|
60
|
+
this._ptyProcess.kill();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (ex) { }
|
|
64
|
+
}
|
|
65
|
+
async _validateCwd() {
|
|
66
|
+
if (this._initialCwd) {
|
|
25
67
|
try {
|
|
26
|
-
const result = await fs_1.promises.stat(
|
|
68
|
+
const result = await fs_1.promises.stat(this._initialCwd);
|
|
27
69
|
if (!result.isDirectory()) {
|
|
28
70
|
return {
|
|
29
|
-
message: `Starting directory (cwd) "${
|
|
71
|
+
message: `Starting directory (cwd) "${this._initialCwd}" is not a directory`,
|
|
30
72
|
};
|
|
31
73
|
}
|
|
32
74
|
}
|
|
33
75
|
catch (err) {
|
|
34
76
|
if ((err === null || err === void 0 ? void 0 : err.code) === 'ENOENT') {
|
|
35
77
|
return {
|
|
36
|
-
message: `Starting directory (cwd) "${
|
|
78
|
+
message: `Starting directory (cwd) "${this._initialCwd}" does not exist`,
|
|
37
79
|
};
|
|
38
80
|
}
|
|
39
81
|
}
|
|
40
82
|
}
|
|
41
83
|
return undefined;
|
|
42
84
|
}
|
|
43
|
-
async _validateExecutable(
|
|
44
|
-
|
|
85
|
+
async _validateExecutable() {
|
|
86
|
+
const options = this.shellLaunchConfig;
|
|
87
|
+
if (!options.executable) {
|
|
45
88
|
return {
|
|
46
|
-
message: 'IShellLaunchConfig.
|
|
89
|
+
message: 'IShellLaunchConfig.executable not set',
|
|
47
90
|
};
|
|
48
91
|
}
|
|
49
92
|
try {
|
|
50
|
-
const result = await fs_1.promises.stat(options.
|
|
93
|
+
const result = await fs_1.promises.stat(options.executable);
|
|
51
94
|
if (!result.isFile() && !result.isSymbolicLink()) {
|
|
52
95
|
return {
|
|
53
|
-
message: `Path to shell executable "${options.
|
|
96
|
+
message: `Path to shell executable "${options.executable}" is not a file or a symlink`,
|
|
54
97
|
};
|
|
55
98
|
}
|
|
56
99
|
}
|
|
@@ -58,19 +101,20 @@ let PtyService = class PtyService {
|
|
|
58
101
|
if ((err === null || err === void 0 ? void 0 : err.code) === 'ENOENT') {
|
|
59
102
|
// The executable isn't an absolute path, try find it on the PATH or CWD
|
|
60
103
|
const envPaths = options.env && options.env.PATH ? options.env.PATH.split(path.delimiter) : undefined;
|
|
61
|
-
const executable = await (0, shell_1.findExecutable)(options.
|
|
104
|
+
const executable = await (0, shell_1.findExecutable)(options.executable, this._initialCwd, envPaths);
|
|
62
105
|
if (!executable) {
|
|
63
106
|
return {
|
|
64
|
-
message: `Path to shell executable "${options.
|
|
107
|
+
message: `Path to shell executable "${options.executable}" does not exist`,
|
|
65
108
|
};
|
|
66
109
|
}
|
|
67
|
-
// Set the
|
|
110
|
+
// Set the executable explicitly here so that node-pty doesn't need to search the
|
|
68
111
|
// $PATH too.
|
|
69
|
-
options.
|
|
112
|
+
options.executable = executable;
|
|
70
113
|
}
|
|
71
114
|
}
|
|
72
115
|
}
|
|
73
|
-
async
|
|
116
|
+
async start() {
|
|
117
|
+
const options = this.shellLaunchConfig;
|
|
74
118
|
const locale = osLocale.sync();
|
|
75
119
|
let ptyEnv;
|
|
76
120
|
if (options.strictEnv) {
|
|
@@ -97,49 +141,81 @@ let PtyService = class PtyService {
|
|
|
97
141
|
PATH: await (0, shell_path_1.getShellPath)(),
|
|
98
142
|
}, options.env);
|
|
99
143
|
}
|
|
100
|
-
|
|
101
|
-
const results = await Promise.all([this._validateCwd(
|
|
144
|
+
this._ptyOptions['env'] = ptyEnv;
|
|
145
|
+
const results = await Promise.all([this._validateCwd(), this._validateExecutable()]);
|
|
102
146
|
const firstError = results.find((r) => r !== undefined);
|
|
103
147
|
if (firstError) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
148
|
+
return firstError;
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
await this.setupPtyProcess();
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
this.logger.error('IPty#spawn native exception', err);
|
|
156
|
+
return { message: `A native exception occurred during launch (${err.message})` };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async setupPtyProcess() {
|
|
160
|
+
const options = this.shellLaunchConfig;
|
|
161
|
+
const args = options.args || [];
|
|
162
|
+
const ptyProcess = pty.spawn(options.executable, args, this._ptyOptions);
|
|
163
|
+
this.addDispose(ptyProcess.onData((e) => {
|
|
164
|
+
this._onData.fire(e);
|
|
165
|
+
}));
|
|
166
|
+
this.addDispose(ptyProcess.onExit((e) => {
|
|
167
|
+
this._onExit.fire(e);
|
|
168
|
+
this.dispose();
|
|
169
|
+
}));
|
|
170
|
+
ptyProcess.bin = options.executable;
|
|
116
171
|
ptyProcess.launchConfig = options;
|
|
117
|
-
|
|
118
|
-
ptyProcess.
|
|
119
|
-
|
|
172
|
+
ptyProcess.parsedName = path.basename(options.executable);
|
|
173
|
+
this._sendProcessId(ptyProcess.pid);
|
|
174
|
+
this._ptyProcess = ptyProcess;
|
|
120
175
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
176
|
+
_sendProcessId(pid) {
|
|
177
|
+
this._onReady.fire({
|
|
178
|
+
pid,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
parseCwd() {
|
|
182
|
+
if (this.shellLaunchConfig.cwd) {
|
|
183
|
+
return typeof this.shellLaunchConfig.cwd === 'string'
|
|
184
|
+
? this.shellLaunchConfig.cwd
|
|
185
|
+
: this.shellLaunchConfig.cwd.fsPath;
|
|
124
186
|
}
|
|
125
187
|
return os_1.default.homedir();
|
|
126
188
|
}
|
|
127
|
-
|
|
189
|
+
getShellName() {
|
|
190
|
+
var _a;
|
|
191
|
+
return ((_a = this._ptyProcess) === null || _a === void 0 ? void 0 : _a.parsedName) || 'not started';
|
|
192
|
+
}
|
|
193
|
+
getPid() {
|
|
194
|
+
var _a;
|
|
195
|
+
return ((_a = this._ptyProcess) === null || _a === void 0 ? void 0 : _a.pid) || -1;
|
|
196
|
+
}
|
|
197
|
+
resize(rows, cols) {
|
|
198
|
+
var _a;
|
|
128
199
|
try {
|
|
129
|
-
|
|
200
|
+
(_a = this._ptyProcess) === null || _a === void 0 ? void 0 : _a.resize(cols, rows);
|
|
130
201
|
}
|
|
131
202
|
catch (e) {
|
|
132
203
|
return false;
|
|
133
204
|
}
|
|
134
205
|
return true;
|
|
135
206
|
}
|
|
207
|
+
onMessage(data) {
|
|
208
|
+
var _a;
|
|
209
|
+
(_a = this._ptyProcess) === null || _a === void 0 ? void 0 : _a.write(data);
|
|
210
|
+
}
|
|
136
211
|
};
|
|
137
212
|
(0, tslib_1.__decorate)([
|
|
138
213
|
(0, di_1.Autowired)(ide_core_node_1.INodeLogger),
|
|
139
214
|
(0, tslib_1.__metadata)("design:type", Object)
|
|
140
215
|
], PtyService.prototype, "logger", void 0);
|
|
141
216
|
PtyService = (0, tslib_1.__decorate)([
|
|
142
|
-
(0, di_1.Injectable)()
|
|
217
|
+
(0, di_1.Injectable)({ multiple: true }),
|
|
218
|
+
(0, tslib_1.__metadata)("design:paramtypes", [String, Object, Number, Number])
|
|
143
219
|
], PtyService);
|
|
144
220
|
exports.PtyService = PtyService;
|
|
145
221
|
//# sourceMappingURL=pty.js.map
|
package/lib/node/pty.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;AAEhG,sIAAsI;AAEtI,2DAAgC;
|
|
1
|
+
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"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"}
|
package/lib/node/shell.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IProcessEnvironment, OperatingSystem } from '@opensumi/ide-core-common/lib/platform';
|
|
2
3
|
export declare const WINDOWS_GIT_BASH_PATHS: string[];
|
|
4
|
+
export declare function getPowershellPaths(): Promise<string[]>;
|
|
3
5
|
export declare const exists: (p: string) => Promise<string | undefined>;
|
|
4
6
|
export declare function findShellExecutableAsync(candidate: string[]): Promise<string | undefined>;
|
|
5
7
|
/**
|
|
@@ -8,4 +10,12 @@ export declare function findShellExecutableAsync(candidate: string[]): Promise<s
|
|
|
8
10
|
export declare function findShellExecutable(candidate: string[]): string | undefined;
|
|
9
11
|
export declare function getCaseInsensitive(target: Record<string, any>, key: string): any;
|
|
10
12
|
export declare function findExecutable(command: string, cwd?: string, paths?: string[], env?: IProcessEnvironment): Promise<string | undefined>;
|
|
13
|
+
export declare function getWindowsBuildNumber(): number;
|
|
14
|
+
/**
|
|
15
|
+
* Gets the detected default shell for the _system_, not to be confused with VS Code's _default_
|
|
16
|
+
* shell that the terminal uses by default.
|
|
17
|
+
* @param os The platform to detect the shell of.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getSystemShell(os: OperatingSystem): Promise<string>;
|
|
20
|
+
export declare function getWindowsShell(env?: NodeJS.ProcessEnv): string;
|
|
11
21
|
//# sourceMappingURL=shell.d.ts.map
|
package/lib/node/shell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,mBAAmB,EAAwB,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIpH,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAEF,wBAAsB,kBAAkB,sBASvC;AAED,eAAO,MAAM,MAAM,MAAa,MAAM,gCAOrC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAW3E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAIhF;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,GAAG,GAAE,mBAAwD,GAC5D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmD7B;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAO9C;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAoCD,wBAAgB,eAAe,CAAC,GAAG,oBAAc,GAAG,MAAM,CAEzD"}
|
package/lib/node/shell.js
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.findExecutable = exports.getCaseInsensitive = exports.findShellExecutable = exports.findShellExecutableAsync = exports.exists = exports.WINDOWS_GIT_BASH_PATHS = void 0;
|
|
7
|
+
exports.getWindowsShell = exports.getSystemShell = exports.getWindowsBuildNumber = exports.findExecutable = exports.getCaseInsensitive = exports.findShellExecutable = exports.findShellExecutableAsync = exports.exists = exports.getPowershellPaths = exports.WINDOWS_GIT_BASH_PATHS = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
// Some code copied and modified from
|
|
10
|
-
|
|
9
|
+
// Some code copied and modified from:
|
|
10
|
+
// - https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalEnvironment.ts
|
|
11
|
+
// - https://github.com/microsoft/vscode/blob/ff383268424b1d4b6620e7ea197fb13ae513414f/src/vs/base/node/shell.ts
|
|
12
|
+
const os_1 = require("os");
|
|
13
|
+
const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
|
|
14
|
+
const platform_1 = require("@opensumi/ide-core-common/lib/platform");
|
|
11
15
|
const path = (0, tslib_1.__importStar)(require("@opensumi/ide-core-common/lib/path"));
|
|
12
16
|
const ide_core_node_1 = require("@opensumi/ide-core-node");
|
|
13
|
-
const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
|
|
14
|
-
// TODO: 用户装在 D 盘的不就识别不对了
|
|
15
|
-
// 要增加一些查找方法,此处需要参考 V 老师的进行改进
|
|
16
17
|
exports.WINDOWS_GIT_BASH_PATHS = [
|
|
17
18
|
`${process.env['ProgramW6432']}\\Git\\bin\\bash.exe`,
|
|
18
19
|
`${process.env['ProgramW6432']}\\Git\\usr\\bin\\bash.exe`,
|
|
@@ -22,9 +23,20 @@ exports.WINDOWS_GIT_BASH_PATHS = [
|
|
|
22
23
|
`${process.env['UserProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
|
|
23
24
|
`${process.env['AllUsersProfile']}\\scoop\\apps\\git-with-openssh\\current\\bin\\bash.exe`,
|
|
24
25
|
];
|
|
26
|
+
async function getPowershellPaths() {
|
|
27
|
+
const paths = [];
|
|
28
|
+
// TODO: 引入 VSCODE 查找逻辑
|
|
29
|
+
// Add all of the different kinds of PowerShells
|
|
30
|
+
// for await (const pwshExe of enumeratePowerShellInstallations()) {
|
|
31
|
+
// paths.push(pwshExe.exePath);
|
|
32
|
+
// }
|
|
33
|
+
paths.push('powershell.exe');
|
|
34
|
+
return paths;
|
|
35
|
+
}
|
|
36
|
+
exports.getPowershellPaths = getPowershellPaths;
|
|
25
37
|
const exists = async (p) => {
|
|
26
38
|
try {
|
|
27
|
-
await fs_1.default.promises.access(
|
|
39
|
+
await fs_1.default.promises.access(path.normalize(p));
|
|
28
40
|
return p;
|
|
29
41
|
}
|
|
30
42
|
catch (_a) {
|
|
@@ -48,7 +60,7 @@ function findShellExecutable(candidate) {
|
|
|
48
60
|
return undefined;
|
|
49
61
|
}
|
|
50
62
|
for (const p of candidate) {
|
|
51
|
-
if (fs_1.default.existsSync(
|
|
63
|
+
if (fs_1.default.existsSync(path.normalize(p))) {
|
|
52
64
|
return p;
|
|
53
65
|
}
|
|
54
66
|
continue;
|
|
@@ -87,7 +99,7 @@ async function findExecutable(command, cwd, paths, env = process.env) {
|
|
|
87
99
|
}
|
|
88
100
|
// We have a simple file name. We get the path variable from the env
|
|
89
101
|
// and try to find the executable on the path.
|
|
90
|
-
for (
|
|
102
|
+
for (const pathEntry of paths) {
|
|
91
103
|
// The path entry is absolute.
|
|
92
104
|
let fullPath;
|
|
93
105
|
if (path.isAbsolute(pathEntry)) {
|
|
@@ -114,4 +126,72 @@ async function findExecutable(command, cwd, paths, env = process.env) {
|
|
|
114
126
|
return (await (0, exports.exists)(fullPath)) ? fullPath : undefined;
|
|
115
127
|
}
|
|
116
128
|
exports.findExecutable = findExecutable;
|
|
129
|
+
function getWindowsBuildNumber() {
|
|
130
|
+
const osVersion = /(\d+)\.(\d+)\.(\d+)/g.exec((0, os_1.release)());
|
|
131
|
+
let buildNumber = 0;
|
|
132
|
+
if (osVersion && osVersion.length === 4) {
|
|
133
|
+
buildNumber = parseInt(osVersion[3], 10);
|
|
134
|
+
}
|
|
135
|
+
return buildNumber;
|
|
136
|
+
}
|
|
137
|
+
exports.getWindowsBuildNumber = getWindowsBuildNumber;
|
|
138
|
+
/**
|
|
139
|
+
* Gets the detected default shell for the _system_, not to be confused with VS Code's _default_
|
|
140
|
+
* shell that the terminal uses by default.
|
|
141
|
+
* @param os The platform to detect the shell of.
|
|
142
|
+
*/
|
|
143
|
+
async function getSystemShell(os) {
|
|
144
|
+
if (os === platform_1.OperatingSystem.Windows) {
|
|
145
|
+
if (ide_core_node_1.isWindows) {
|
|
146
|
+
return getSystemShellWindows();
|
|
147
|
+
}
|
|
148
|
+
// Don't detect Windows shell when not on Windows
|
|
149
|
+
return getWindowsShell();
|
|
150
|
+
}
|
|
151
|
+
return getSystemShellUnixLike(os);
|
|
152
|
+
}
|
|
153
|
+
exports.getSystemShell = getSystemShell;
|
|
154
|
+
let _TERMINAL_DEFAULT_SHELL_UNIX_LIKE = null;
|
|
155
|
+
function getSystemShellUnixLike(os, env = process.env) {
|
|
156
|
+
// Only use $SHELL for the current OS
|
|
157
|
+
if ((platform_1.isLinux && os === platform_1.OperatingSystem.Macintosh) || (platform_1.isMacintosh && os === platform_1.OperatingSystem.Linux)) {
|
|
158
|
+
return '/bin/bash';
|
|
159
|
+
}
|
|
160
|
+
if (!_TERMINAL_DEFAULT_SHELL_UNIX_LIKE) {
|
|
161
|
+
let unixLikeTerminal;
|
|
162
|
+
unixLikeTerminal = env['SHELL'];
|
|
163
|
+
if (!unixLikeTerminal) {
|
|
164
|
+
try {
|
|
165
|
+
// It's possible for $SHELL to be unset, this API reads /etc/passwd. See https://github.com/github/codespaces/issues/1639
|
|
166
|
+
// Node docs: "Throws a SystemError if a user has no username or homedir."
|
|
167
|
+
unixLikeTerminal = (0, os_1.userInfo)().shell;
|
|
168
|
+
}
|
|
169
|
+
catch (err) { }
|
|
170
|
+
}
|
|
171
|
+
if (!unixLikeTerminal) {
|
|
172
|
+
unixLikeTerminal = 'sh';
|
|
173
|
+
}
|
|
174
|
+
// Some systems have $SHELL set to /bin/false which breaks the terminal
|
|
175
|
+
if (unixLikeTerminal === '/bin/false') {
|
|
176
|
+
unixLikeTerminal = '/bin/bash';
|
|
177
|
+
}
|
|
178
|
+
_TERMINAL_DEFAULT_SHELL_UNIX_LIKE = unixLikeTerminal;
|
|
179
|
+
}
|
|
180
|
+
return _TERMINAL_DEFAULT_SHELL_UNIX_LIKE;
|
|
181
|
+
}
|
|
182
|
+
function getWindowsShell(env = process.env) {
|
|
183
|
+
return env['comspec'] || 'cmd.exe';
|
|
184
|
+
}
|
|
185
|
+
exports.getWindowsShell = getWindowsShell;
|
|
186
|
+
let _TERMINAL_DEFAULT_SHELL_WINDOWS = null;
|
|
187
|
+
async function getSystemShellWindows(env = process.env) {
|
|
188
|
+
if (!_TERMINAL_DEFAULT_SHELL_WINDOWS) {
|
|
189
|
+
const isAtLeastWindows10 = ide_core_node_1.isWindows && parseFloat((0, os_1.release)()) >= 10;
|
|
190
|
+
const is32ProcessOn64Windows = env.hasOwnProperty('PROCESSOR_ARCHITEW6432');
|
|
191
|
+
const powerShellPath = `${env['windir']}\\${is32ProcessOn64Windows ? 'Sysnative' : 'System32'}\\WindowsPowerShell\\v1.0\\powershell.exe`;
|
|
192
|
+
_TERMINAL_DEFAULT_SHELL_WINDOWS = isAtLeastWindows10 ? powerShellPath : getWindowsShell(env);
|
|
193
|
+
return _TERMINAL_DEFAULT_SHELL_WINDOWS;
|
|
194
|
+
}
|
|
195
|
+
return _TERMINAL_DEFAULT_SHELL_WINDOWS;
|
|
196
|
+
}
|
|
117
197
|
//# sourceMappingURL=shell.js.map
|
package/lib/node/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;AAEhG,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,4 @@ import { ITerminalProcessService } from '../common';
|
|
|
3
3
|
export declare class TerminalProcessServiceImpl implements ITerminalProcessService {
|
|
4
4
|
getEnv(): Promise<NodeJS.ProcessEnv>;
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=terminal
|
|
6
|
+
//# sourceMappingURL=terminal.process.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.process.service.d.ts","sourceRoot":"","sources":["../../src/node/terminal.process.service.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,qBACa,0BAA2B,YAAW,uBAAuB;IACjE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;CAG5C"}
|
|
@@ -12,4 +12,4 @@ TerminalProcessServiceImpl = (0, tslib_1.__decorate)([
|
|
|
12
12
|
(0, di_1.Injectable)()
|
|
13
13
|
], TerminalProcessServiceImpl);
|
|
14
14
|
exports.TerminalProcessServiceImpl = TerminalProcessServiceImpl;
|
|
15
|
-
//# sourceMappingURL=terminal
|
|
15
|
+
//# sourceMappingURL=terminal.process.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal
|
|
1
|
+
{"version":3,"file":"terminal.process.service.js","sourceRoot":"","sources":["../../src/node/terminal.process.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAI1C,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAC9B,MAAM;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AAJY,0BAA0B;IADtC,IAAA,eAAU,GAAE;GACA,0BAA0B,CAItC;AAJY,gEAA0B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IPotentialTerminalProfile, ITerminalProfile, IUnresolvedTerminalProfile } from '../common/profile';
|
|
2
|
+
import { IDetectProfileOptions, ITerminalEnvironment } from '..';
|
|
3
|
+
export declare const ITerminalProfileServiceNode: unique symbol;
|
|
4
|
+
export declare class TerminalProfileServiceNode {
|
|
5
|
+
private logger;
|
|
6
|
+
profileSources: Map<string, IPotentialTerminalProfile> | undefined;
|
|
7
|
+
private _perferenceProfiles;
|
|
8
|
+
constructor();
|
|
9
|
+
detectAvailableProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
10
|
+
_getPreferenceProfiles(): {
|
|
11
|
+
[key: string]: IUnresolvedTerminalProfile;
|
|
12
|
+
};
|
|
13
|
+
_detectWindowsProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
14
|
+
initializeWindowsProfiles(): Promise<void>;
|
|
15
|
+
_detectUnixProfiles(options: IDetectProfileOptions): Promise<ITerminalProfile[]>;
|
|
16
|
+
validateProfilePaths(profileName: string, defaultProfileName: string | undefined, potentialPaths: string[], args: string[] | string | undefined, env: ITerminalEnvironment, overrideName?: boolean | undefined, isAutoDetected?: boolean | undefined): any;
|
|
17
|
+
transformToTerminalProfiles(entries: IterableIterator<[string, IUnresolvedTerminalProfile]>, defaultProfileName: string | undefined): Promise<ITerminalProfile[]>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=terminal.profile.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.profile.service.d.ts","sourceRoot":"","sources":["../../src/node/terminal.profile.service.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAE3B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAqBjE,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,qBACa,0BAA0B;IAErC,OAAO,CAAC,MAAM,CAAc;IAE5B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,mBAAmB,CAAgD;;IAG3E,uBAAuB,CAAC,OAAO,EAAE,qBAAqB;IAYtD,sBAAsB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAAA;KAAE;IAGjE,sBAAsB,CAAC,OAAO,EAAE,qBAAqB;IA4DrD,yBAAyB;IAiBzB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IAyBlD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,EACnC,GAAG,EAAE,oBAAoB,EACzB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,EAClC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS;IAgEhC,2BAA2B,CAC/B,OAAO,EAAE,gBAAgB,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAC/D,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA2C/B"}
|