diff --git a/terminus-terminal/src/services/sessions.service.ts b/terminus-terminal/src/services/sessions.service.ts index a05e3b60..c3f09f94 100644 --- a/terminus-terminal/src/services/sessions.service.ts +++ b/terminus-terminal/src/services/sessions.service.ts @@ -264,7 +264,7 @@ export class Session extends BaseSession { return null } try { - fs.access(this.guessedCWD) + await fs.access(this.guessedCWD) } catch (e) { return null } diff --git a/terminus-terminal/src/services/terminal.service.ts b/terminus-terminal/src/services/terminal.service.ts index 71528ab2..cd588492 100644 --- a/terminus-terminal/src/services/terminal.service.ts +++ b/terminus-terminal/src/services/terminal.service.ts @@ -1,3 +1,4 @@ +import * as fs from 'mz/fs' import { Observable, AsyncSubject } from 'rxjs' import { Injectable, Inject } from '@angular/core' import { AppService, Logger, LogService, ConfigService } from 'terminus-core' @@ -41,6 +42,10 @@ export class TerminalService { } async openTab (shell?: IShell, cwd?: string, pause?: boolean): Promise { + if (cwd && !fs.existsSync(cwd)) { + console.warn('Ignoring non-existent CWD:', cwd) + cwd = null + } if (!cwd) { if (this.app.activeTab instanceof TerminalTabComponent && this.app.activeTab.session) { cwd = await this.app.activeTab.session.getWorkingDirectory()