Simple tool for automatic file management
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}