Skip to content

Commit 04804de

Browse files
committed
refactor doc_cli main
1 parent a28cb61 commit 04804de

2 files changed

Lines changed: 21 additions & 47 deletions

File tree

crates/emmylua_doc_cli/src/init.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,10 @@ use emmylua_code_analysis::{
44
load_configs, load_workspace_files, EmmyLuaAnalysis, Emmyrc, LuaFileInfo,
55
};
66

7-
#[allow(unused)]
8-
pub fn load_workspace(workspace_folders: Vec<String>) -> Option<EmmyLuaAnalysis> {
7+
pub fn load_workspace(mut workspace_folders: Vec<PathBuf>) -> Option<EmmyLuaAnalysis> {
98
let mut analysis = EmmyLuaAnalysis::new();
109
analysis.init_std_lib(None);
1110

12-
let mut workspace_folders = workspace_folders
13-
.iter()
14-
.map(PathBuf::from)
15-
.collect::<Vec<_>>();
1611
for path in &workspace_folders {
1712
analysis.add_main_workspace(path.clone());
1813
}

crates/emmylua_doc_cli/src/main.rs

Lines changed: 20 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,40 @@
1+
use std::path::PathBuf;
2+
13
use crate::cmd_args::Format;
24
use clap::Parser;
35
use cmd_args::CmdArgs;
4-
use std::process::exit;
56

67
mod cmd_args;
78
mod common;
89
mod init;
910
mod json_generator;
1011
mod markdown_generator;
1112

12-
fn main() {
13+
fn main() -> Result<(), Box<dyn std::error::Error>> {
1314
let args = CmdArgs::parse();
14-
let current_path = std::env::current_dir().ok().unwrap();
15+
let current_path = std::env::current_dir()?;
1516
let input = args.input;
16-
let mut files: Vec<String> = Vec::new();
17-
for path in &input {
17+
let mut files: Vec<PathBuf> = Vec::new();
18+
for path in input {
1819
if path.is_relative() {
19-
match current_path.join(path).to_str() {
20-
Some(p) => {
21-
files.push(p.to_string());
22-
}
23-
None => {
24-
eprintln!("Error: {} is not a valid path.", path.to_str().unwrap());
25-
exit(1);
26-
}
27-
}
20+
files.push(current_path.join(path));
2821
} else {
29-
match path.to_str() {
30-
Some(p) => {
31-
files.push(p.to_string());
32-
}
33-
None => {
34-
eprintln!("Error: {} is not a valid path.", path.to_str().unwrap());
35-
exit(1);
36-
}
37-
}
22+
files.push(path);
3823
}
3924
}
4025

41-
let analysis = init::load_workspace(files);
42-
if let Some(mut analysis) = analysis {
43-
let res = match args.format {
44-
Format::Markdown => markdown_generator::generate_markdown(
45-
&mut analysis,
46-
args.output,
47-
args.override_template,
48-
args.mixin,
49-
),
50-
Format::Json => json_generator::generate_json(&mut analysis, args.output),
51-
};
26+
let mut analysis = match init::load_workspace(files) {
27+
Some(a) => a,
28+
None => return Err("failed to load workspace".into()),
29+
};
5230

53-
if let Err(err) = res {
54-
eprintln!("Error: {}", err);
55-
exit(1);
56-
}
57-
} else {
58-
eprintln!("Analysis failed.");
59-
exit(1);
31+
match args.format {
32+
Format::Markdown => markdown_generator::generate_markdown(
33+
&mut analysis,
34+
args.output,
35+
args.override_template,
36+
args.mixin,
37+
),
38+
Format::Json => json_generator::generate_json(&mut analysis, args.output),
6039
}
6140
}

0 commit comments

Comments
 (0)