本文整理汇总了TypeScript中pty.js.fork方法的典型用法代码示例。如果您正苦于以下问题:TypeScript js.fork方法的具体用法?TypeScript js.fork怎么用?TypeScript js.fork使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pty.js
的用法示例。
在下文中一共展示了js.fork方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: constructor
// TODO: write proper signatures.
// TODO: use generators.
// TODO: terminate. https://github.com/atom/atom/blob/v1.0.15/src/task.coffee#L151
constructor(command: string, args: string[], env: ProcessEnvironment, dimensions: Dimensions, dataHandler: (d: string) => void, exitHandler: (c: number) => void) {
this.terminal = pty.fork(loginShell.executableName, [...loginShell.noConfigSwitches, "-c", `${command} ${args.map(escapeArgument).join(" ")}`], {
cols: dimensions.columns,
rows: dimensions.rows,
cwd: env.PWD,
env: env,
});
this.terminal.on("data", (data: string) => dataHandler(data));
this.terminal.on("exit", (code: number) => {
exitHandler(code);
});
}
示例2: constructor
// TODO: write proper signatures.
// TODO: use generators.
// TODO: terminate. https://github.com/atom/atom/blob/v1.0.15/src/task.coffee#L151
constructor(command: string, args: string[], env: ProcessEnvironment, dimensions: Dimensions, dataHandler: (d: string) => void, exitHandler: (c: number) => void) {
this.terminal = pty.fork(shell(), [...noConfigSwitches[baseName(shell())], "-c", `${command} ${args.map(arg => `'${arg}'`).join(" ")}`], {
cols: dimensions.columns,
rows: dimensions.rows,
cwd: env.PWD,
env: env,
});
this.terminal.on("data", (data: string) => dataHandler(data));
this.terminal.on("exit", (code: number) => {
exitHandler(code);
});
}
示例3: constructor
// TODO: write proper signatures.
// TODO: use generators.
// TODO: terminate. https://github.com/atom/atom/blob/v1.0.15/src/task.coffee#L151
constructor(words: EscapedShellWord[], env: ProcessEnvironment, dimensions: Dimensions, dataHandler: (d: string) => void, exitHandler: (c: number) => void) {
const shellArguments = [...loginShell.noConfigSwitches, "-i", "-c", words.join(" ")];
debug(`PTY: ${loginShell.executableName} ${JSON.stringify(shellArguments)}`);
this.terminal = pty.fork(loginShell.executableName, shellArguments, {
cols: dimensions.columns,
rows: dimensions.rows,
cwd: env.PWD,
env: env,
});
this.terminal.on("data", (data: string) => dataHandler(data));
this.terminal.on("exit", (code: number) => {
exitHandler(code);
});
}
示例4: parseInt
import * as pty from "pty.js";
import {baseName} from "./Utils";
let commandName = process.argv[2];
let args = process.argv.slice(5);
let columns = parseInt(process.argv[3], 10);
let rows = parseInt(process.argv[4], 10);
const noConfigSwitches: Dictionary<string[]> = {
zsh: ["--no-globalrcs", "--no-rcs"],
bash: ["--noprofile", "--norc"],
};
const fork = pty.fork(process.env.SHELL, [...noConfigSwitches[baseName(process.env.SHELL)], "-c", `${commandName} ${args.join(" ")}`], {
cols: columns,
rows: rows,
cwd: process.cwd(),
env: process.env,
});
interface IncomingMessage {
input?: string;
resize?: number[];
signal?: string;
}
process.on("message", (message: IncomingMessage) => {
if (message.hasOwnProperty("input")) {
fork.write(message.input);
} else if (message.hasOwnProperty("resize")) {
fork.resize(message.resize[0], message.resize[1]);
} else if (message.hasOwnProperty("signal")) {
示例5: parseInt
import * as pty from "pty.js";
let commandName = process.argv[2];
let args = process.argv.slice(5);
let columns = parseInt(process.argv[3], 10);
let rows = parseInt(process.argv[4], 10);
const fork = pty.fork(process.env.SHELL, ["-c", `${commandName} ${args.join(" ")}`], {
cols: columns,
rows: rows,
cwd: process.cwd(),
env: process.env,
});
interface IncomingMessage {
input?: string;
resize?: number[];
signal?: string;
}
process.on("message", (message: IncomingMessage) => {
if (message.hasOwnProperty("input")) {
fork.write(message.input);
} else if (message.hasOwnProperty("resize")) {
fork.resize(message.resize[0], message.resize[1]);
} else if (message.hasOwnProperty("signal")) {
/**
* The if branch is necessary because pty.js doesn"t handle SIGINT correctly.
* You can test whether it works by executing
* ruby -e "loop { puts "yes"; sleep 1 }"
* and trying to kill it with SIGINT.