1 个不稳定版本
0.1.0 | 2024年5月22日 |
---|
#1809 在 命令行工具
26KB
557 行
Bubblers
甲壳类动物 CLI,用于排出水泡
Bubblers 是一个简单的 Rust 命令行界面 (CLI) 构建工具。它内置了 rustubble
功能
- 简单的 API 用于创建 CLI 应用程序
- 支持各种命令类型(标准、UI、带返回的 UI)
- 支持不同类型的参数
- 支持各种 UI 元素(输入表单、文本区域、加载器、表格、进度条、计时器、秒表、视口、项目列表、菜单列表)
- 支持命令和 UI 元素的执行
安装
要将 Bubblers 包含到您的项目中,请将以下内容添加到您的 Cargo.toml
[dependencies]
bubblers = "0.1.0"
用法
创建基本 CLI
以下是如何使用 Bubblers 创建基本 CLI 应用程序的示例
use std::{sync::Arc, io};
use bubblers::{CliConfig, CommandConfig, CommandType, ArgConfig};
fn main() {
let mut cli = CliConfig::new("bubblers_app", "1.0", "A simple CLI app using Bubblers");
let command = CommandConfig::new_standard(
"greet",
"Print a greeting message",
Arc::new(|args| {
if let Some(name) = args.get(0) {
println!("Hello, {}!", name);
} else {
println!("Hello, world!");
}
}),
).add_arg(ArgConfig {
name: "name",
help: "Name to greet".to_string(),
required: false,
});
cli.add_command(command);
cli.execute();
}
添加 UI 元素
Bubblers 支持各种 UI 元素。以下是如何添加输入表单的示例
cli.add_input(
"input",
"Get user input",
"Enter text here...",
"",
"Your Input:"
);
实现自定义命令
您可以实现自定义命令并将它们添加到您的 CLI 中。以下是一个示例
cli.add_command(CommandConfig::new_standard(
"custom_cmd",
"Execute a custom command",
Arc::new(|args| {
println!("Executing custom command with args: {:?}", args);
}),
));
完整示例
以下是一个使用 Bubblers 的各种功能的 CLI 应用程序的完整示例
use std::{io, sync::Arc};
use bubblers::{CliConfig, CommandConfig, CommandType, ArgConfig};
use crossterm::style::Color;
fn main() {
let mut cli = CliConfig::new("bubblers_app", "1.0", "A simple CLI app using Bubblers");
// Standard Command
cli.add_command(CommandConfig::new_standard(
"greet",
"Print a greeting message",
Arc::new(|args| {
if let Some(name) = args.get(0) {
println!("Hello, {}!", name);
} else {
println!("Hello, world!");
}
}),
).add_arg(ArgConfig {
name: "name",
help: "Name to greet".to_string(),
required: false,
}));
// UI Command
cli.add_input(
"input",
"Get user input",
"Enter text here...",
"",
"Your Input:"
);
// UI with Return Command
cli.add_menu_list(
"menu",
"Select an option",
"Main Menu",
"Choose one of the following:",
vec!["Option 1".to_string(), "Option 2".to_string()]
);
cli.execute();
}
贡献
欢迎贡献!请提交一个拉取请求或创建一个问题来讨论您的想法。
许可
Bubblers 在 MIT 许可下授权。有关更多信息,请参阅 LICENSE
依赖项
~12–22MB
~263K SLoC