fix root dir resolution for WSL2
This commit is contained in:
parent
2ab0bc8b4b
commit
bc6333bd20
|
@ -6,6 +6,14 @@ Bug-fixes within the same version aren't needed
|
|||
## Master
|
||||
|
||||
-->
|
||||
### 0.1.15
|
||||
|
||||
* Fix root dir resolution for WSL2
|
||||
|
||||
### 0.1.14
|
||||
|
||||
* Fix installing extension on remote server via SSH
|
||||
|
||||
### 0.1.12
|
||||
|
||||
* Fix create environment double run in terminal
|
||||
|
|
|
@ -11,6 +11,38 @@ export const getMicromambaCreateEnvironmentArgs = (environmentFileName: string):
|
|||
'--yes',
|
||||
]
|
||||
|
||||
export function makeProcess$(extContext: ExtensionContext, environmentFileName: string) {
|
||||
return new Observable<string>((o) => {
|
||||
const child = spawn(extContext.micromambaPath, [
|
||||
'create',
|
||||
'--file',
|
||||
environmentFileName,
|
||||
'--yes',
|
||||
], {
|
||||
cwd: extContext.rootDir,
|
||||
env: process.env,
|
||||
})
|
||||
child.stderr.setEncoding('utf8')
|
||||
child.stderr.on('data', (chunk) => {
|
||||
const data = isWindows ? chunk.toString() : chunk.toString().replaceAll('\n', '\r\n')
|
||||
o.next(data)
|
||||
})
|
||||
child.stdout.setEncoding('utf8')
|
||||
child.stdout.on('data', (chunk) => {
|
||||
const data = isWindows ? chunk.toString() : chunk.toString().replaceAll('\n', '\r\n')
|
||||
o.next(data)
|
||||
})
|
||||
child.on('error', (err) => o.next(`${err.name}: ${err.message}`))
|
||||
child.on('close', (code) => {
|
||||
if (code === 0)
|
||||
o.complete()
|
||||
else
|
||||
o.error(code)
|
||||
})
|
||||
return () => child.kill()
|
||||
})
|
||||
}
|
||||
|
||||
export const makeMicromambaCreateEnvironmentTask = (
|
||||
extContext: ExtensionContext,
|
||||
environmentFileName: string,
|
||||
|
@ -19,33 +51,7 @@ export const makeMicromambaCreateEnvironmentTask = (
|
|||
const newLocal = new vscode.CustomExecution(async () => {
|
||||
const writeEmitter = new vscode.EventEmitter<string>();
|
||||
const closeEmitter = new vscode.EventEmitter<number>();
|
||||
const process$ = new Observable<string>((o) => {
|
||||
const child = spawn(extContext.micromambaPath, [
|
||||
'create',
|
||||
'--file',
|
||||
environmentFileName,
|
||||
'--yes',
|
||||
], {
|
||||
cwd: workspaceFolder.uri.path,
|
||||
env: process.env,
|
||||
})
|
||||
child.stderr.setEncoding('utf8')
|
||||
child.stderr.on('data', (chunk) => {
|
||||
const data = isWindows ? chunk.toString() : chunk.toString().replaceAll('\n', '\r\n')
|
||||
o.next(data)
|
||||
})
|
||||
child.stdout.setEncoding('utf8')
|
||||
child.stdout.on('data', (chunk) => {
|
||||
const data = isWindows ? chunk.toString() : chunk.toString().replaceAll('\n', '\r\n')
|
||||
o.next(data)
|
||||
})
|
||||
child.on('error', (err) => writeEmitter.fire(`${err.name}: ${err.message}`))
|
||||
child.on('close', (code) => {
|
||||
if (code === 0) o.complete()
|
||||
else o.error(code)
|
||||
})
|
||||
return () => child.kill()
|
||||
})
|
||||
const process$ = makeProcess$(extContext, environmentFileName)
|
||||
let sub: Subscription
|
||||
const pty: vscode.Pseudoterminal = {
|
||||
onDidWrite: writeEmitter.event,
|
||||
|
|
Loading…
Reference in New Issue