| 1 | #[path = "../src/flush.rs"] |
| 2 | mod flush; |
| 3 | |
| 4 | use std::{env, fs::OpenOptions, io::Write, path::Path}; |
| 5 | fn main() -> Result<(), Box<dyn std::error::Error>> { |
| 6 | let args: Vec<_> = env::args().skip(1).collect(); |
| 7 | if args.len() != 3 { |
| 8 | return Err("Usage: create_section OUTPUT TEXT AUTHOR".into()); |
| 9 | } |
| 10 | let name = Path::new(&args[0]) |
| 11 | .file_name() |
| 12 | .and_then(|name| name.to_str()) |
| 13 | .ok_or("Invalid section name")?; |
| 14 | let bytes = onestore::create_section(name, &args[1], &args[2])?; |
| 15 | let mut file = OpenOptions::new() |
| 16 | .create_new(true) |
| 17 | .write(true) |
| 18 | .open(&args[0])?; |
| 19 | file.write_all(&bytes)?; |
| 20 | flush::flush(&file)?; |
| 21 | Ok(()) |
| 22 | } |