13 个版本 (6 个重大更改)
新功能 0.7.3 | 2024 年 8 月 22 日 |
---|---|
0.6.1 | 2024 年 7 月 26 日 |
0.6.0 | 2024 年 1 月 5 日 |
0.4.0 | 2023 年 12 月 29 日 |
在 命令行工具 中排名第 1750
每月下载量 723
在 2 crates 中使用
46KB
473 行
关于
sprint
包提供表示库或 CLI 代码中的 shell 会话的 Shell
结构体,可用于运行命令
Shell
暴露其属性,您可以使用它们轻松地 创建自定义 shell 或 修改现有的 shell 以满足您的要求。
sprint
包还提供了用于从命令行直接使用库的 CLI,有两种模式:
CLI 示例
$ sprint -h
Command runner
Usage: sprint [OPTIONS] [STRING]...
Arguments:
[STRING]... File(s) or command(s)
Options:
-s <STRING> Shell [default: "sh -c"]
-f <STRING> Fence [default: ```]
-i <STRING> Info [default: text]
-p <STRING> Prompt [default: "$ "]
--color <COLOR> Force enable/disable terminal colors [default: auto]
[possible values: auto, always, never]
-h, --help Print help
-V, --version Print version
运行作为参数提供的命令
$ sprint ls
```text
$ ls
Cargo.lock
Cargo.toml
CHANGELOG.md
Makefile.md
README.md
src
t
target
tests
```
以交互方式运行
库示例
运行命令并显示输出
use sprint::*;
let shell = Shell::default();
shell.run(&[Command::new("ls"), Command::new("ls -l")]);
// or equivalently:
//shell.run_str(&["ls", "ls -l"]);
运行命令并返回输出
use sprint::*;
let shell = Shell::default();
let results = shell.run(&[Command {
command: String::from("ls"),
stdout: Pipe::string(),
codes: vec![0],
..Default::default()
}]);
assert_eq!(
results[0].stdout,
Pipe::String(Some(String::from("\
Cargo.lock
Cargo.toml
CHANGELOG.md
Makefile.md
README.md
src
t
target
tests
\
"))),
);
自定义
use sprint::*;
let shell = Shell {
shell: Some(String::from("sh -c")),
dry_run: false,
sync: true,
print: true,
fence: String::from("```"),
info: String::from("text"),
prompt: String::from("$ "),
fence_color: bunt::style!("#555555"),
info_color: bunt::style!("#555555"),
prompt_color: bunt::style!("#555555"),
command_color: bunt::style!("#00ffff+bold"),
error_color: bunt::style!("#ff0000+bold+italic"),
};
shell.run(&[Command::new("ls"), Command::new("ls -l")]);
修改
use sprint::*;
let mut shell = Shell::default();
shell.shell = None;
shell.run(&[Command::new("ls"), Command::new("ls -l")]);
shell.sync = false;
shell.run(&[Command::new("ls"), Command::new("ls -l")]);
变更日志
请找到 CHANGELOG.md
在 仓库 中。
依赖项
~4–13MB
~176K SLoC