Alphabetize list output

This commit is contained in:
gil 2024-05-30 14:04:17 -05:00
parent 704fc91ef8
commit acda290c4b
2 changed files with 20 additions and 5 deletions

View file

@ -103,10 +103,15 @@ impl ModMap {
self self
} }
pub fn export_file(self, block_path: &str, mute_path: &str, heat: (u16, u16)) -> std::io::Result<()> { pub fn export_file(
self,
block_path: &str,
mute_path: &str,
heat: (u16, u16),
) -> std::io::Result<()> {
if self.0.is_empty() { if self.0.is_empty() {
error!("Nothing to export!"); error!("Nothing to export!");
return Ok(()) return Ok(());
} }
let (block_thresh, mute_thresh) = heat; let (block_thresh, mute_thresh) = heat;
@ -125,9 +130,19 @@ impl ModMap {
} }
} }
fs::write(block_path, block_output)?; fs::write(block_path, alphabetize_lines(block_output))?;
fs::write(mute_path, mute_output)?; fs::write(mute_path, alphabetize_lines(mute_output))?;
Ok(()) Ok(())
} }
} }
pub fn alphabetize_lines(string: String) -> String {
let mut v = string
.lines()
.map(|literal| literal.to_string())
.collect::<Vec<String>>();
v.sort_by_key(|a| a.to_lowercase());
v.join("\n") + "\n"
}

View file

@ -196,5 +196,5 @@ fn modmap_export_txt() {
let mutes: String = fs::read_to_string("test_mutes.txt").unwrap(); let mutes: String = fs::read_to_string("test_mutes.txt").unwrap();
assert_eq!(blocks, "example.com\n"); assert_eq!(blocks, "example.com\n");
assert!(mutes == "example.org\nexample.net\n" || mutes == "example.net\nexample.org\n"); assert_eq!(mutes, "example.net\nexample.org\n");
} }