Skip to content

Commit 4aaebcb

Browse files
committed
use clap to parse linkchecker arguments
1 parent f0b67dd commit 4aaebcb

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2177,6 +2177,7 @@ dependencies = [
21772177
name = "linkchecker"
21782178
version = "0.1.0"
21792179
dependencies = [
2180+
"clap",
21802181
"html5ever",
21812182
"regex",
21822183
]

src/tools/linkchecker/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ path = "main.rs"
1010
[dependencies]
1111
regex = "1"
1212
html5ever = "0.29.0"
13+
clap = { version = "4.5.40", features = ["derive"] }

src/tools/linkchecker/main.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
1919
use std::cell::{Cell, RefCell};
2020
use std::collections::{HashMap, HashSet};
21+
use std::fs;
2122
use std::io::ErrorKind;
2223
use std::path::{Component, Path, PathBuf};
2324
use std::rc::Rc;
2425
use std::time::Instant;
25-
use std::{env, fs};
2626

27+
use clap::Parser;
2728
use html5ever::tendril::ByteTendril;
2829
use html5ever::tokenizer::{
2930
BufferQueue, TagToken, Token, TokenSink, TokenSinkResult, Tokenizer, TokenizerOpts,
@@ -110,10 +111,16 @@ macro_rules! t {
110111
};
111112
}
112113

114+
#[derive(Parser)]
115+
struct Cli {
116+
docs: PathBuf,
117+
}
118+
113119
fn main() {
114-
let docs = env::args_os().nth(1).expect("doc path should be first argument");
115-
let docs = env::current_dir().unwrap().join(docs);
116-
let mut checker = Checker { root: docs.clone(), cache: HashMap::new() };
120+
let mut cli = Cli::parse();
121+
cli.docs = cli.docs.canonicalize().unwrap();
122+
123+
let mut checker = Checker { root: cli.docs.clone(), cache: HashMap::new() };
117124
let mut report = Report {
118125
errors: 0,
119126
start: Instant::now(),
@@ -125,7 +132,7 @@ fn main() {
125132
intra_doc_exceptions: 0,
126133
has_broken_urls: false,
127134
};
128-
checker.walk(&docs, &mut report);
135+
checker.walk(&cli.docs, &mut report);
129136
report.report();
130137
if report.errors != 0 {
131138
println!("found some broken links");

0 commit comments

Comments
 (0)