diff --git a/terminus-core/src/services/electron.service.ts b/terminus-core/src/services/electron.service.ts index 9f6dfc9a..96214da3 100644 --- a/terminus-core/src/services/electron.service.ts +++ b/terminus-core/src/services/electron.service.ts @@ -9,12 +9,12 @@ export class ElectronService { clipboard: any globalShortcut: any screen: any + remote: any private electron: any - private remoteElectron: any constructor () { this.electron = require('electron') - this.remoteElectron = this.remoteRequire('electron') + this.remote = this.electron.remote this.app = this.electron.remote.app this.screen = this.electron.remote.screen this.dialog = this.electron.remote.dialog @@ -25,6 +25,6 @@ export class ElectronService { } remoteRequire (name: string): any { - return this.electron.remote.require(name) + return this.remote.require(name) } } diff --git a/terminus-terminal/src/buttonProvider.ts b/terminus-terminal/src/buttonProvider.ts index aed8f4d7..d542bdd3 100644 --- a/terminus-terminal/src/buttonProvider.ts +++ b/terminus-terminal/src/buttonProvider.ts @@ -1,7 +1,7 @@ import * as fs from 'mz/fs' import * as path from 'path' import { Injectable } from '@angular/core' -import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService, HostAppService } from 'terminus-core' +import { HotkeysService, ToolbarButtonProvider, IToolbarButton, AppService, ConfigService, HostAppService, ElectronService } from 'terminus-core' import { SessionsService } from './services/sessions.service' import { ShellsService } from './services/shells.service' @@ -14,6 +14,7 @@ export class ButtonProvider extends ToolbarButtonProvider { private sessions: SessionsService, private config: ConfigService, private shells: ShellsService, + electron: ElectronService, hostApp: HostAppService, hotkeys: HotkeysService, ) { @@ -31,6 +32,18 @@ export class ButtonProvider extends ToolbarButtonProvider { } } }) + if (!electron.remote.process.env.DEV) { + setImmediate(async () => { + let argv: string[] = electron.remote.process.argv + for (let arg of argv.slice(1)) { + if (await fs.exists(arg)) { + if ((await fs.stat(arg)).isDirectory()) { + this.openNewTab(arg) + } + } + } + }) + } } async openNewTab (cwd?: string): Promise {