new(main): add filesystem io

This commit is contained in:
testuser 2025-02-03 04:39:01 +09:00
parent fd106e3355
commit 6ff047563c

View file

@ -1,6 +1,8 @@
use std::{collections::HashMap, fs}; use std::fs::DirBuilder;
use std::io::Write;
use std::{collections::HashMap, fs, io::BufWriter};
use anyhow::Result; use anyhow::{anyhow, Context, Result};
use endcap_sl_software_ri_generator::{generator::CodeGen, types}; use endcap_sl_software_ri_generator::{generator::CodeGen, types};
use itertools::Itertools; use itertools::Itertools;
@ -25,10 +27,30 @@ fn main() -> Result<()> {
println!("==========================================="); println!("===========================================");
let files = register_map.generate_register_interface(None, None, HashMap::new())?; let files = register_map.generate_register_interface(None, None, HashMap::new())?;
println!("{:#?}", files); // println!("{:#?}", files);
for filepath in files.keys().sorted() { for filepath in files.keys().sorted() {
println!("{}", filepath.display()); println!("{}", filepath.display());
} }
if !std::fs::read_dir("register_interface")
.context("register_interface not found")?
.collect_vec()
.is_empty()
{
return Err(anyhow!("dir out is not empty"));
};
for (file, code) in files {
DirBuilder::new()
.recursive(true)
.create(file.parent().context("no parent")?)?;
let file = fs::OpenOptions::new()
.create(true)
.truncate(true)
.write(true)
.open(file)
.context("opening file")?;
let mut writer = BufWriter::new(file);
write!(writer, "{}", code)?;
}
Ok(()) Ok(())
} }