1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
// This file is part of StultusVisio.
//
// StultusVisio is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// StultusVisio is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with StultusVisio. If not, see <https://www.gnu.org/licenses/>6.
// Jefferson T. @ 2023. Telegram: StalinCCCP
use lib::*;
use std::{
env,
error::Error,
fs::File,
io::{BufRead, BufReader},
};
fn main() -> Result<(), Box<dyn Error>> {
let files: Vec<String> = env::args().collect();
for file in files.into_iter().skip(1) {
let mut presentation = lib::Presentation {
body: String::new(),
handle: None,
header: String::new(),
title: Some(String::new()),
footer: Some(String::new()),
script_path: None,
css_path: None,
logo_path: None,
script_mermaid: None,
};
let mut line_no = 0;
BufReader::new(File::open(file.clone())?)
.lines()
.for_each(|line| {
// não interessa o resultado
// o BufReader falha com erro próprio.
let _ = match line {
Ok(line) => presentation.process(line, line_no),
Err(_error) => todo!(),
};
line_no = line_no + 1;
});
presentation.build(file)?
}
Ok(())
}