43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
use clap::Parser;
|
|
use std::{
|
|
fs::{File, read_to_string},
|
|
io::Write,
|
|
path::PathBuf,
|
|
process::exit,
|
|
};
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(
|
|
version,
|
|
about,
|
|
long_about = "This fixes files that sometimes get fucked up by Windows not using the stanard \\n notation for new lines."
|
|
)]
|
|
struct Args {
|
|
#[arg(short, long, help = "the file to fix")]
|
|
input: PathBuf,
|
|
|
|
#[arg(short, long, help = "the path to save the fixed file")]
|
|
output: PathBuf,
|
|
}
|
|
|
|
fn main() {
|
|
let args = Args::parse();
|
|
let file_read_res = read_to_string(args.input);
|
|
if file_read_res.is_err() {
|
|
println!("error reading broken file!");
|
|
println!("{}", file_read_res.err().unwrap());
|
|
exit(1);
|
|
}
|
|
let borked_string = file_read_res.unwrap();
|
|
let file_open_res = File::create_new(args.output);
|
|
if file_open_res.is_err() {
|
|
println!("error opening output file!");
|
|
println!("{}", file_open_res.err().unwrap());
|
|
exit(1);
|
|
}
|
|
let mut outfile = file_open_res.unwrap();
|
|
let fixed_lines: Vec<&str> = borked_string.split("\\n").collect();
|
|
for line in fixed_lines {
|
|
write!(outfile, "{}\n", line).unwrap();
|
|
}
|
|
} |