CLI options to start SSH and serial connections - fixes #2785

This commit is contained in:
Eugene Pankov
2021-05-16 16:06:50 +02:00
parent 3f40098ffb
commit 7506670dfb
7 changed files with 72 additions and 16 deletions

View File

@@ -0,0 +1,30 @@
import { Injectable } from '@angular/core'
import { CLIHandler, CLIEvent, ConfigService } from 'terminus-core'
import { SerialService } from './services/serial.service'
@Injectable()
export class SerialCLIHandler extends CLIHandler {
firstMatchOnly = true
priority = 0
constructor (
private serial: SerialService,
private config: ConfigService,
) {
super()
}
async handle (event: CLIEvent): Promise<boolean> {
const op = event.argv._[0]
if (op === 'connect-serial') {
const connection = this.config.store.serial.connections.find(x => x.name === event.argv.connectionName)
if (connection) {
this.serial.connect(connection)
}
return true
}
return false
}
}

View File

@@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common'
import { FormsModule } from '@angular/forms'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { ToastrModule } from 'ngx-toastr'
import TerminusCoreModule, { ToolbarButtonProvider, ConfigProvider, TabRecoveryProvider, HotkeyProvider } from 'terminus-core'
import TerminusCoreModule, { ToolbarButtonProvider, ConfigProvider, TabRecoveryProvider, HotkeyProvider, CLIHandler } from 'terminus-core'
import { SettingsTabProvider } from 'terminus-settings'
import TerminusTerminalModule from 'terminus-terminal'
@@ -16,6 +16,7 @@ import { SerialConfigProvider } from './config'
import { SerialSettingsTabProvider } from './settings'
import { RecoveryProvider } from './recoveryProvider'
import { SerialHotkeyProvider } from './hotkeys'
import { SerialCLIHandler } from './cli'
/** @hidden */
@NgModule({
@@ -33,6 +34,7 @@ import { SerialHotkeyProvider } from './hotkeys'
{ provide: SettingsTabProvider, useClass: SerialSettingsTabProvider, multi: true },
{ provide: TabRecoveryProvider, useClass: RecoveryProvider, multi: true },
{ provide: HotkeyProvider, useClass: SerialHotkeyProvider, multi: true },
{ provide: CLIHandler, useClass: SerialCLIHandler, multi: true },
],
entryComponents: [
EditConnectionModalComponent,