import { Item } from '../fs/Item' import type { SimpleStream } from '../utils/SimpleStream' import { Program } from './Program' export class Cat extends Program { constructor() { super() } async Exec(_: SimpleStream, stdout: SimpleStream, __: Item, args: string[]): Promise { let item: Item = await Item.open(args[1]) if (!(await item.Exists())) { stdout.emit(`cat: error: item ${item.GetPath()} doesn't exist.\n`) return 1 } if (item.IsDirectory()) { stdout.emit(`cat: error: can't read data from a directory; item ${item.GetPath()} is a directory.\n`) return 2 } stdout.emit(`${item.ReadData()}`) stdout.emit('[ EOF ]\n') return 0 } }