Advertisement
Guest User

Untitled

a guest
Nov 12th, 2017
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.04 KB | None | 0 0
  1. pub fn download<W>(&self, writer: &mut W, family: &str) -> Result<(), FontError>
  2.         where W: Write
  3.     {
  4.         let client = Client::new();
  5.  
  6.         // make sure local path exists
  7.         let path = dirs::font_cache().ok_or(FontError::FontDirectory)?;
  8.         dirs::make_rec_dir(&path)?;
  9.  
  10.         // download and install each variant of the given font family
  11.         let font = self.get_family(family).ok_or(FontError::FontNotFound)?;
  12.         for (variant, uri) in &font.files {
  13.             let path = dirs::get_font_path(&path, family, &variant, &uri);
  14.  
  15.             // let the user know which font we are processing
  16.             let message = format!("Installing '{:?}'\n", path);
  17.             eprint!("fontfinder: {}", message);
  18.             let _ = writer.write(message.as_bytes());
  19.  
  20.             // download and store locally
  21.             let mut file = OpenOptions::new().create(true).write(true).open(&path)?;
  22.             let mut data = client.get(uri.as_str()).send()?;
  23.             io::copy(&mut data, &mut file)?;
  24.         }
  25.  
  26.         Ok(())
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement