replutil
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

replutil

npm deno land deno doc Test npm version

REPL (Read-eval-print loop) utilities.

Usage

Use Sender to send message to REPL and Receiver to receive message from REPL.

SSH
import { Receiver, Sender } from "./mod.ts";

const proc = Deno.run({
  cmd: ["ssh", "-tt", "localhost", "/bin/sh"],
  stdin: "piped",
  stdout: "piped",
});
const receiver = new Receiver(proc.stdout, {
  pattern: /.*\$ $/,
});
const sender = new Sender(proc.stdin);
await receiver.recv();
await sender.send("ls -al\n");
const received = await receiver.recv();
await sender.send("exit\n");
await proc.status();
proc.close();

console.log("-".repeat(80));
console.log(received);
console.log("-".repeat(80));
Telnet
import { Receiver, Sender } from "./mod.ts";

const username = "johntitor";
const password = "steinsgate";

const proc = Deno.run({
  cmd: ["telnet", "localhost"],
  stdin: "piped",
  stdout: "piped",
});
const receiver = new Receiver(proc.stdout, {
  pattern: /.* % /,
});
const sender = new Sender(proc.stdin);

await receiver.recv(/login: $/);
await sender.send(`${username}\n`);

await receiver.recv(/Password:$/);
await sender.send(`${password}\n`);

await receiver.recv();
await sender.send("ls -al\n");
const received = await receiver.recv();
await sender.send("exit\n");
await proc.status();
proc.close();

console.log("-".repeat(80));
console.log(received);
console.log("-".repeat(80));

Development

Lint code like:

make lint

Format code like

make fmt

Check types like

make type-check

Run tests like:

make test

License

The code follows MIT license written in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.

Readme

Keywords

none

Package Sidebar

Install

npm i replutil

Weekly Downloads

27

Version

0.0.3

License

MIT

Unpacked Size

255 kB

Total Files

71

Last publish

Collaborators

  • lambdalisue
  • fixpoint-machine-user