Simple tool for automatic file management
at master 1.1 kB view raw
1// SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev> 2// 3// SPDX-License-Identifier: EUPL-1.2 4 5use std::fs; 6use std::path::Path; 7 8fn main() -> simple_eyre::Result<()> { 9 let sh = xshell::Shell::new()?; 10 11 let outdir = std::env::var("OUT")?; 12 let outdir = Path::new(&outdir); 13 14 // Generate Manpages using scdoc 15 for entry in fs::read_dir("docs")? { 16 let entry = entry?; 17 let file_name = entry.file_name(); 18 let file_name = Path::new(&file_name); 19 if file_name.extension() != Some(std::ffi::OsStr::new("scd")) { continue } 20 21 let outname = Path::file_stem(file_name).unwrap(); 22 let page = Path::new(outname).extension().unwrap().to_str().unwrap(); 23 24 let outdir = outdir.join(format!("man{page}")); 25 26 fs::create_dir_all(&outdir)?; 27 28 let input = entry.path(); 29 let input = Path::new(&input); 30 31 let output = xshell::cmd!(sh, "scdoc").stdin(fs::read(input)?).read()?; 32 33 fs::write(outdir.join(outname), &output)?; 34 35 println!("{:?}", outname); 36 } 37 38 Ok(()) 39}