diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index b963850..83743a7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,7 @@ use clap::Parser; use cli::Args; use cookies::CookieStore; use display::Display; +use epub::EpubSkeleton; use http_client::HttpClient; use orly::{check_login, fetch_book_info}; @@ -68,9 +69,19 @@ async fn main() { }; ui.info(&format!("{:#?}", bookinfo)); - let output_dir = config::books_root().join(format!("(pending) ({})", args.bookid)); + let skeleton = EpubSkeleton::plan(&config::books_root(), &bookinfo.title, &args.bookid); + ui.set_output_dir(skeleton.root.clone()); - ui.set_output_dir(output_dir); + // Create directories and required files + if let Err(e) = (|| -> anyhow::Result<()> { + skeleton.create_dirs()?; + skeleton.write_mimetype()?; + skeleton.write_container_xml()?; + Ok(()) + })() { + ui.error_and_exit(&format!("EPUB skeleton creation failed: {e}")); + } + ui.info("EPUB skeleton ready (mimetype + META-INF/container.xml + OEBPS/)."); ui.info("Initialization complete."); ui.info("No network operations performed in this version."); |
