Skip to content
This repository was archived by the owner on Nov 24, 2023. It is now read-only.

Commit 5d4c8c8

Browse files
committed
Change example to automatically determine filename
1 parent fa8a2f0 commit 5d4c8c8

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

examples/fix-json.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ extern crate failure;
22
extern crate rustfix;
33

44
use failure::Error;
5-
use std::{env, fs, process, collections::HashSet};
5+
use std::{collections::HashMap, collections::HashSet, env, fs, process};
66

77
fn main() -> Result<(), Error> {
88
let args: Vec<String> = env::args().collect();
9-
let (suggestions_file, source_file) = match args.as_slice() {
10-
[_, suggestions_file, source_file] => (suggestions_file, source_file),
9+
let suggestions_file = match args.as_slice() {
10+
[_, suggestions_file] => suggestions_file,
1111
_ => {
12-
println!("USAGE: fix-json <suggestions-file> <source-file>");
12+
println!("USAGE: fix-json <suggestions-file>");
1313
process::exit(1);
1414
}
1515
};
@@ -21,11 +21,21 @@ fn main() -> Result<(), Error> {
2121
rustfix::Filter::Everything,
2222
)?;
2323

24-
let source = fs::read_to_string(&source_file)?;
24+
let mut files = HashMap::new();
25+
for suggestion in suggestions {
26+
let file = suggestion.solutions[0].replacements[0]
27+
.snippet
28+
.file_name
29+
.clone();
30+
let entry = files.entry(file).or_insert(Vec::new());
31+
entry.push(suggestion);
32+
}
2533

26-
let fixes = rustfix::apply_suggestions(&source, &suggestions)?;
27-
28-
println!("{}", fixes);
34+
for (source_file, suggestions) in &files {
35+
let source = fs::read_to_string(&source_file)?;
36+
let fixes = rustfix::apply_suggestions(&source, suggestions)?;
37+
fs::write(&source_file, fixes)?;
38+
}
2939

3040
Ok(())
3141
}

0 commit comments

Comments
 (0)