diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-08-02 16:56:14 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-08-02 16:56:14 +0200 |
| commit | d5ff97f42ed1e682a66ea8d51e5f9ed1be547b9c (patch) | |
| tree | 2fdc3a368c4320051e3f62a460f3912fe5f44c7c /src/bin/main.rs | |
| parent | 533374db14087ac54fdc86afa5f009487ac1b850 (diff) | |
Move binary into separate crate and tidy dependencies ðŸŽ
Diffstat (limited to 'src/bin/main.rs')
| -rw-r--r-- | src/bin/main.rs | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/src/bin/main.rs b/src/bin/main.rs deleted file mode 100644 index 6d115c1e..00000000 --- a/src/bin/main.rs +++ /dev/null @@ -1,62 +0,0 @@ -use std::cell::RefCell; -use std::error::Error; -use std::fs::{File, read_to_string}; -use std::io::BufWriter; -use std::path::{Path, PathBuf}; -use std::rc::Rc; -use futures_executor::block_on; - -use fontdock::fs::{FsIndex, FsProvider}; -use fontdock::FontLoader; -use typstc::Typesetter; -use typstc::font::DynProvider; -use typstc::export::pdf; - -fn main() { - if let Err(err) = run() { - eprintln!("error: {}", err); - std::process::exit(1); - } -} - -fn run() -> Result<(), Box<dyn Error>> { - let args: Vec<String> = std::env::args().collect(); - if args.len() < 2 || args.len() > 3 { - println!("typst"); - println!("usage: {} source [destination]", - args.first().map(|s| s.as_str()).unwrap_or("typst")); - std::process::exit(0); - } - - let source = Path::new(&args[1]); - let dest = if args.len() <= 2 { - source.with_extension("pdf") - } else { - PathBuf::from(&args[2]) - }; - - if source == dest { - Err("source and destination path are the same")?; - } - - let src = read_to_string(source) - .map_err(|_| "failed to read from source file")?; - - let mut index = FsIndex::new(); - index.search_dir("fonts"); - index.search_os(); - - let (descriptors, files) = index.into_vecs(); - let provider = FsProvider::new(files.clone()); - let dynamic = Box::new(provider) as Box<DynProvider>; - let loader = FontLoader::new(dynamic, descriptors); - let loader = Rc::new(RefCell::new(loader)); - - let typesetter = Typesetter::new(loader.clone()); - let layouts = block_on(typesetter.typeset(&src)).output; - - let writer = BufWriter::new(File::create(&dest)?); - pdf::export(&layouts, &loader, writer)?; - - Ok(()) -} |
