22 lines
756 B
TypeScript
22 lines
756 B
TypeScript
import type { Item } from '../fs/Item'
|
|
import type { Program } from '../program/Program'
|
|
import type { Terminal } from '../terminal/Terminal'
|
|
import type { EventBroadcaster } from '../utils/EventBroadcaster'
|
|
|
|
export abstract class Shell {
|
|
readonly abstract Version: string
|
|
readonly abstract Name: string
|
|
broadcaster: EventBroadcaster
|
|
readonly terminal: Terminal
|
|
|
|
constructor(broadcaster: EventBroadcaster, terminal: Terminal) {
|
|
this.broadcaster = broadcaster
|
|
this.terminal = terminal
|
|
}
|
|
|
|
abstract LoadProgram(program: Program, name: string): void
|
|
abstract ExecuteProgram(name: string, args: string[]): void
|
|
abstract Init(): Promise<void>
|
|
abstract SetWorkingDirectory(directory: Item): Promise<void>
|
|
}
|