about summary refs log tree commit diff
path: root/converge/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'converge/src/main.rs')
-rwxr-xr-x[-rw-r--r--]converge/src/main.rs39
1 files changed, 18 insertions, 21 deletions
diff --git a/converge/src/main.rs b/converge/src/main.rs
index 20f2683..74abe67 100644..100755
--- a/converge/src/main.rs
+++ b/converge/src/main.rs
@@ -1,32 +1,30 @@
 use std::str::FromStr;
 
 use camino::Utf8PathBuf;
+use scurvy::Argument;
 
 fn main() {
-	let mut args = std::env::args().skip(1);
-	let argc = args.len();
-	if argc == 0 {
-		eprintln!("usage: converge <content file> [supporting files ...]");
-		return;
+	let arguments = [
+		Argument::arg("timdb", "path").help("time database generated with whenwasit"),
+		Argument::arg("part", "path").help("part converge is supposed to build"),
+	];
+	let cli = scurvy::parse(&arguments);
+
+	let content: Utf8PathBuf = cli.parse_opt_or_die("part");
+	let supporting: Vec<Utf8PathBuf> = cli.free_opts().into_iter().map(Utf8PathBuf::from).collect();
+
+	let time = std::time::Instant::now();
+	for idx in 0..100 {
+		let supporting = supporting.clone();
+		let html = process(content.clone(), supporting);
 	}
+	println!("{}ms for 100", time.elapsed().as_millis());
 
-	let content = match args.next() {
-		None => {
-			eprintln!("usage: converge <content file> [supporting files ...]");
-			return;
-		}
-		Some(path) => Utf8PathBuf::from(path),
-	};
-
-	let supporting = args.map(Utf8PathBuf::from).collect();
-
-	let html = process(content, supporting);
-	println!("{html}")
+	//println!("{html}")
 }
 
 fn process(content_file: Utf8PathBuf, mut supporting: Vec<Utf8PathBuf>) -> cutie::Html {
-	println!("{content_file}");
-	let raw = std::fs::read_to_string(&content_file).unwrap();
+	let raw = std::fs::read_to_string(content_file).unwrap();
 
 	match Part::from_str(&raw) {
 		Err(PartError::NoSetup) => cutie::Html::parse(raw),
@@ -73,7 +71,7 @@ fn process(content_file: Utf8PathBuf, mut supporting: Vec<Utf8PathBuf>) -> cutie
 					html: &'a mut cutie::Html,
 					ident: &str,
 				) -> &'a mut cutie::Tag {
-					match html.get_parent_that_contains_tag_name_mut(&ident) {
+					match html.get_parent_that_contains_tag_name_mut(ident) {
 						None => {
 							eprintln!("error processing file");
 							eprintln!("failed to find element with tag {ident}");
@@ -93,7 +91,6 @@ fn process(content_file: Utf8PathBuf, mut supporting: Vec<Utf8PathBuf>) -> cutie
 						tag.children.extend(content_html.nodes);
 					}
 					Opcode::Before => {
-						println!("BEFORE");
 						let predicate = |node: &cutie::Node| -> bool {
 							if let cutie::Node::Tag(tag) = node {
 								if tag.name == ident {