diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-29 16:54:49 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-29 16:54:49 +0200 |
commit | eda0c12b4af72935c9fa6adef60aff754313f189 (patch) | |
tree | 7d6ffdf17564e36320fefe818b0267c43332f0a9 | |
parent | b31b6ff2ab5d94e5b6280ba3cb4db7d46267999a (diff) | |
download | staticwiki-eda0c12b4af72935c9fa6adef60aff754313f189.tar staticwiki-eda0c12b4af72935c9fa6adef60aff754313f189.tar.bz2 staticwiki-eda0c12b4af72935c9fa6adef60aff754313f189.tar.zst |
blub
-rw-r--r-- | readme.md | 2 | ||||
-rw-r--r-- | src/main.rs | 26 |
2 files changed, 18 insertions, 10 deletions
@@ -19,6 +19,8 @@ pages. - Get help: `staticwiki --help` - Convert to squashfs: `staticwiki --bzip2 --tar < dump.xml.bz2 | mksquashfs - wiki.sfs -tar -comp zstd` + (note: the `-tar` option prevent mksquashfs from compressing in parallel for + some reason. no known fix except for writing to disk) ## License diff --git a/src/main.rs b/src/main.rs index e8c0375..34b00bb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,10 +43,6 @@ fn main() { for (i, result) in parse_mediawiki_dump::parse(input).enumerate() { match result { - Err(error) => { - eprintln!("xml format error: {}", error); - break; - } Ok(page) => { if page.namespace == 0 && match &page.format { @@ -81,17 +77,27 @@ fn main() { let mut header = Header::new_gnu(); header.set_size(html.as_bytes().len() as u64); header.set_cksum(); - archive - .append_data(&mut header, filename, html.as_bytes()) - .unwrap(); + if let Err(e) = archive.append_data(&mut header, filename, html.as_bytes()) + { + eprintln!("could not append to archive: {e}") + } } else { - let mut f = File::create(format!("out/{}", filename)).unwrap(); - f.write_all(html.as_bytes()).unwrap() + match File::create(format!("out/{}", filename)) { + Ok(mut f) => f.write_all(html.as_bytes()).unwrap(), + Err(e) => eprintln!("could not create file: {e}"), + } } - } else { + } else if args.verbose { eprintln!("page ignored: {:?}", page.title); } } + Err(error) => { + eprintln!("xml format error: {}", error); + break; + } + } + if i % 10000 == 0 { + eprintln!("{i}") } if Some(i) == args.limit { break; |