@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.
Files changed (119) hide show
  1. package/lib/browser/component/terminal.view.d.ts.map +1 -1
  2. package/lib/browser/component/terminal.view.js +7 -1
  3. package/lib/browser/component/terminal.view.js.map +1 -1
  4. package/lib/browser/component/terminal.widget.d.ts.map +1 -1
  5. package/lib/browser/component/terminal.widget.js +12 -3
  6. package/lib/browser/component/terminal.widget.js.map +1 -1
  7. package/lib/browser/contribution/index.d.ts +1 -0
  8. package/lib/browser/contribution/index.d.ts.map +1 -1
  9. package/lib/browser/contribution/index.js +1 -0
  10. package/lib/browser/contribution/index.js.map +1 -1
  11. package/lib/browser/contribution/terminal.preference.d.ts +6 -0
  12. package/lib/browser/contribution/terminal.preference.d.ts.map +1 -0
  13. package/lib/browser/contribution/terminal.preference.js +17 -0
  14. package/lib/browser/contribution/terminal.preference.js.map +1 -0
  15. package/lib/browser/index.d.ts.map +1 -1
  16. package/lib/browser/index.js +21 -1
  17. package/lib/browser/index.js.map +1 -1
  18. package/lib/browser/terminal.api.d.ts.map +1 -1
  19. package/lib/browser/terminal.api.js +11 -10
  20. package/lib/browser/terminal.api.js.map +1 -1
  21. package/lib/browser/terminal.client.d.ts +33 -16
  22. package/lib/browser/terminal.client.d.ts.map +1 -1
  23. package/lib/browser/terminal.client.js +248 -113
  24. package/lib/browser/terminal.client.js.map +1 -1
  25. package/lib/browser/terminal.contribution.d.ts +7 -0
  26. package/lib/browser/terminal.contribution.d.ts.map +1 -0
  27. package/lib/browser/terminal.contribution.js +32 -0
  28. package/lib/browser/terminal.contribution.js.map +1 -0
  29. package/lib/browser/terminal.controller.d.ts +14 -3
  30. package/lib/browser/terminal.controller.d.ts.map +1 -1
  31. package/lib/browser/terminal.controller.js +44 -9
  32. package/lib/browser/terminal.controller.js.map +1 -1
  33. package/lib/browser/terminal.internal.service.d.ts +6 -2
  34. package/lib/browser/terminal.internal.service.d.ts.map +1 -1
  35. package/lib/browser/terminal.internal.service.js +27 -0
  36. package/lib/browser/terminal.internal.service.js.map +1 -1
  37. package/lib/browser/terminal.profile.d.ts +28 -0
  38. package/lib/browser/terminal.profile.d.ts.map +1 -0
  39. package/lib/browser/terminal.profile.internal.d.ts +16 -0
  40. package/lib/browser/terminal.profile.internal.d.ts.map +1 -0
  41. package/lib/browser/terminal.profile.internal.js +106 -0
  42. package/lib/browser/terminal.profile.internal.js.map +1 -0
  43. package/lib/browser/terminal.profile.js +146 -0
  44. package/lib/browser/terminal.profile.js.map +1 -0
  45. package/lib/browser/terminal.service.d.ts +7 -4
  46. package/lib/browser/terminal.service.d.ts.map +1 -1
  47. package/lib/browser/terminal.service.js +35 -19
  48. package/lib/browser/terminal.service.js.map +1 -1
  49. package/lib/browser/xterm.d.ts +24 -0
  50. package/lib/browser/xterm.d.ts.map +1 -0
  51. package/lib/browser/xterm.js +55 -0
  52. package/lib/browser/xterm.js.map +1 -0
  53. package/lib/common/client.d.ts +4 -2
  54. package/lib/common/client.d.ts.map +1 -1
  55. package/lib/common/client.js +2 -1
  56. package/lib/common/client.js.map +1 -1
  57. package/lib/common/controller.d.ts +17 -1
  58. package/lib/common/controller.d.ts.map +1 -1
  59. package/lib/common/controller.js.map +1 -1
  60. package/lib/common/error.d.ts +8 -0
  61. package/lib/common/error.d.ts.map +1 -1
  62. package/lib/common/error.js +5 -1
  63. package/lib/common/error.js.map +1 -1
  64. package/lib/common/extension.d.ts +28 -2
  65. package/lib/common/extension.d.ts.map +1 -1
  66. package/lib/common/extension.js +6 -1
  67. package/lib/common/extension.js.map +1 -1
  68. package/lib/common/index.d.ts +2 -0
  69. package/lib/common/index.d.ts.map +1 -1
  70. package/lib/common/index.js +2 -0
  71. package/lib/common/index.js.map +1 -1
  72. package/lib/common/preference.d.ts +94 -0
  73. package/lib/common/preference.d.ts.map +1 -1
  74. package/lib/common/preference.js +140 -1
  75. package/lib/common/preference.js.map +1 -1
  76. package/lib/common/process.d.ts +8 -0
  77. package/lib/common/process.d.ts.map +1 -0
  78. package/lib/common/process.js +3 -0
  79. package/lib/common/process.js.map +1 -0
  80. package/lib/common/profile.d.ts +101 -0
  81. package/lib/common/profile.d.ts.map +1 -0
  82. package/lib/common/profile.js +28 -0
  83. package/lib/common/profile.js.map +1 -0
  84. package/lib/common/pty.d.ts +142 -24
  85. package/lib/common/pty.d.ts.map +1 -1
  86. package/lib/common/pty.js +2 -2
  87. package/lib/common/pty.js.map +1 -1
  88. package/lib/common/service.d.ts +11 -6
  89. package/lib/common/service.d.ts.map +1 -1
  90. package/lib/common/service.js.map +1 -1
  91. package/lib/node/index.d.ts.map +1 -1
  92. package/lib/node/index.js +6 -1
  93. package/lib/node/index.js.map +1 -1
  94. package/lib/node/pty.d.ts +29 -15
  95. package/lib/node/pty.d.ts.map +1 -1
  96. package/lib/node/pty.js +117 -41
  97. package/lib/node/pty.js.map +1 -1
  98. package/lib/node/shell.d.ts +11 -1
  99. package/lib/node/shell.d.ts.map +1 -1
  100. package/lib/node/shell.js +89 -9
  101. package/lib/node/shell.js.map +1 -1
  102. package/lib/node/{terminal-process.service.d.ts → terminal.process.service.d.ts} +1 -1
  103. package/lib/node/terminal.process.service.d.ts.map +1 -0
  104. package/lib/node/{terminal-process.service.js → terminal.process.service.js} +1 -1
  105. package/lib/node/{terminal-process.service.js.map → terminal.process.service.js.map} +1 -1
  106. package/lib/node/terminal.profile.service.d.ts +19 -0
  107. package/lib/node/terminal.profile.service.d.ts.map +1 -0
  108. package/lib/node/terminal.profile.service.js +229 -0
  109. package/lib/node/terminal.profile.service.js.map +1 -0
  110. package/lib/node/terminal.service.client.d.ts +8 -1
  111. package/lib/node/terminal.service.client.d.ts.map +1 -1
  112. package/lib/node/terminal.service.client.js +40 -13
  113. package/lib/node/terminal.service.client.js.map +1 -1
  114. package/lib/node/terminal.service.d.ts +7 -7
  115. package/lib/node/terminal.service.d.ts.map +1 -1
  116. package/lib/node/terminal.service.js +41 -23
  117. package/lib/node/terminal.service.js.map +1 -1
  118. package/package.json +15 -15
  119. 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 = exports.pty = void 0;
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
- async _validateCwd(cwd) {
24
- if (cwd) {
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(cwd);
68
+ const result = await fs_1.promises.stat(this._initialCwd);
27
69
  if (!result.isDirectory()) {
28
70
  return {
29
- message: `Starting directory (cwd) "${cwd}" is not a directory`,
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) "${cwd}" does not exist`,
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(options, ptyEnv, cwd) {
44
- if (!options.shellPath) {
85
+ async _validateExecutable() {
86
+ const options = this.shellLaunchConfig;
87
+ if (!options.executable) {
45
88
  return {
46
- message: 'IShellLaunchConfig.shellPath not set',
89
+ message: 'IShellLaunchConfig.executable not set',
47
90
  };
48
91
  }
49
92
  try {
50
- const result = await fs_1.promises.stat(options.shellPath);
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.shellPath}" is not a file or a symlink`,
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.shellPath, cwd, envPaths, ptyEnv);
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.shellPath}" does not exist`,
107
+ message: `Path to shell executable "${options.executable}" does not exist`,
65
108
  };
66
109
  }
67
- // Set the shellPath explicitly here so that node-pty doesn't need to search the
110
+ // Set the executable explicitly here so that node-pty doesn't need to search the
68
111
  // $PATH too.
69
- options.shellPath = executable;
112
+ options.executable = executable;
70
113
  }
71
114
  }
72
115
  }
73
- async create2(options) {
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
- const cwd = this.parseCwd(options);
101
- const results = await Promise.all([this._validateCwd(cwd), this._validateExecutable(options, ptyEnv, cwd)]);
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
- this.logger.error(`validate shell launch config failed: ${firstError.message}`);
105
- throw new Error(firstError.message);
106
- }
107
- // above code will validate shellPath and throw if it doesn't exist
108
- const ptyProcess = pty.spawn(options.shellPath, options.args || [], {
109
- name: options.name || 'xterm-256color',
110
- cols: options.cols || 100,
111
- rows: options.rows || 30,
112
- cwd,
113
- env: ptyEnv,
114
- });
115
- ptyProcess.bin = options.shellPath;
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
- const match = options.shellPath.match(/[\w|.]+$/);
118
- ptyProcess.parsedName = match ? match[0] : 'sh';
119
- return ptyProcess;
172
+ ptyProcess.parsedName = path.basename(options.executable);
173
+ this._sendProcessId(ptyProcess.pid);
174
+ this._ptyProcess = ptyProcess;
120
175
  }
121
- parseCwd(options) {
122
- if (options.cwd) {
123
- return typeof options.cwd === 'string' ? options.cwd : options.cwd.fsPath;
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
- resize(termninal, rows, cols) {
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
- termninal.resize(cols, rows);
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
@@ -1 +1 @@
1
- {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/node/pty.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import { IProcessEnvironment } from '@opensumi/ide-core-common/lib/platform';
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
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAQ7E,eAAO,MAAM,sBAAsB,UAQlC,CAAC;AAEF,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"}
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 https://github.com/microsoft/vscode/blob/1.63.0/src/vs/platform/terminal/node/terminalEnvironment.ts
10
- const ide_core_common_1 = require("@opensumi/ide-core-common");
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((0, ide_core_common_1.normalize)(p));
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((0, ide_core_common_1.normalize)(p))) {
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 (let pathEntry of paths) {
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
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/node/shell.ts"],"names":[],"mappings":"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"}
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-process.service.d.ts.map
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-process.service.js.map
15
+ //# sourceMappingURL=terminal.process.service.js.map
@@ -1 +1 @@
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"}
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"}