Skip to content

Commit a3fda50

Browse files
committed
feat: introduce clap to build cli tool
1 parent 6c077d2 commit a3fda50

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ indicatif = { version = "0.17" }
1818
log = { version = "0.4" }
1919
env_logger = { version = "0.10" }
2020
chrono = { version = "0.4" }
21+
clap = { version = "4.2.1", features = ["derive"] }

src/main.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
11
use chatsh::app;
22
use chrono::Local;
3+
use clap::Parser;
34
use std::env;
45
use std::io::Write;
6+
#[derive(Parser, Debug)]
7+
struct Args {
8+
// Whether to print debug log.
9+
#[clap(short, long, default_value = "false")]
10+
debug: bool,
11+
}
512

613
fn main() {
7-
init_logger();
14+
let args = Args::parse();
15+
init_logger(if args.debug {
16+
log::LevelFilter::Debug
17+
} else {
18+
log::LevelFilter::Info
19+
});
20+
821
let openai_key = env::var("OPENAI_KEY");
922
if openai_key.is_err() {
1023
log::error!(
@@ -19,7 +32,7 @@ fn main() {
1932
app.run();
2033
}
2134

22-
fn init_logger() {
35+
fn init_logger(filter_level: log::LevelFilter) {
2336
env_logger::Builder::new()
2437
.format(|buf, record| {
2538
let mut level_style = buf.style();
@@ -48,6 +61,6 @@ fn init_logger() {
4861
record.args()
4962
)
5063
})
51-
.filter_level(log::LevelFilter::Info)
64+
.filter_level(filter_level)
5265
.init();
5366
}

0 commit comments

Comments
 (0)