6 个版本
使用旧的 Rust 2015
0.2.0 | 2016 年 11 月 8 日 |
---|---|
0.1.4 | 2016 年 8 月 13 日 |
0.1.3 | 2016 年 1 月 26 日 |
0.1.2 | 2015 年 12 月 30 日 |
#25 in #pty
被 2 个crate使用
15KB
394 代码行(不包括注释)
pty-shell
pty crate 的扩展。
https://speakerdeck.com/hibariya/control-a-shell-with-pty-shell
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
pty-shell = '0.2.0'
例如,将 src/main.rs 添加如下
extern crate pty_shell;
use pty_shell::{winsize, PtyShell, PtyHandler};
struct Shell;
impl PtyHandler for Shell {
fn input(&mut self, input: &[u8]) {
/* do something with input */
}
fn output(&mut self, output: &[u8]) {
/* do something with output */
}
fn resize(&mut self, winsize: &winsize::Winsize) {
/* do something with winsize */
}
fn shutdown(&mut self) {
/* prepare for shutdown */
}
}
fn main() {
let child = pty::fork().unwrap();
child.exec("bash");
child.proxy(Shell);
child.wait();
}
回调样式
使用 pty_shell::PtyCallback
.
child.proxy(
PtyCallback::new()
.input(|input| { /* do something with input */ })
.output(|output| { /* do something with output */ })
.build()
)
);
事件类型
- 输入
- 输出
- 调整大小
- 关闭
贡献
- 分支它 ( https://github.com/hibariya/pty-shell/fork )
- 创建您的功能分支 (
git checkout -b my-new-feature
) - 提交您的更改 (
git commit -am 'Add some feature'
) - 推送到分支 (
git push origin my-new-feature
) - 创建新的 Pull Request
许可证
版权所有 (c) 2015 Hika Hibariya
分发许可证 MIT License.
依赖
~4MB
~72K SLoC