summaryrefslogtreecommitdiffstats
path: root/front_end
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2020-02-19 09:57:50 +0000
committerKornel <kornel@geekhood.net>2020-02-19 09:57:50 +0000
commita3d2e1eed6005927db4f8d54424983f38b087062 (patch)
tree7104610ea78e4b5f12018fca1fed0ad272112de7 /front_end
parenta763037428ca03bc231d5268f2bf3017f0133204 (diff)
Add tokio runtime
Diffstat (limited to 'front_end')
-rw-r--r--front_end/Cargo.toml1
-rw-r--r--front_end/src/bin/crate_pages.rs9
-rw-r--r--front_end/src/bin/website.rs9
3 files changed, 11 insertions, 8 deletions
diff --git a/front_end/Cargo.toml b/front_end/Cargo.toml
index 265a179..771891d 100644
--- a/front_end/Cargo.toml
+++ b/front_end/Cargo.toml
@@ -33,3 +33,4 @@ parking_lot = "0.10.0"
unicase = "2.6.0"
either = "1.5.3"
heck = "0.3.1"
+tokio = { version = "0.2.11", features = ["rt-threaded", "macros"] }
diff --git a/front_end/src/bin/crate_pages.rs b/front_end/src/bin/crate_pages.rs
index 6a88da5..4a5cbbd 100644
--- a/front_end/src/bin/crate_pages.rs
+++ b/front_end/src/bin/crate_pages.rs
@@ -10,8 +10,9 @@ use std::fs;
use std::path::PathBuf;
use std::sync::Arc;
-fn main() {
- if let Err(e) = run(std::env::args().nth(1)) {
+#[tokio::main]
+async fn main() {
+ if let Err(e) = run(std::env::args().nth(1)).await {
eprintln!("error: {}", e);
for c in e.iter_chain() {
eprintln!("error: -- {}", c);
@@ -58,10 +59,10 @@ fn render(origin: &Origin, crates: &KitchenSink, path: &PathBuf, markup: &Render
Ok(())
}
-fn run(filter: Option<String>) -> Result<(), failure::Error> {
+async fn run(filter: Option<String>) -> Result<(), failure::Error> {
rayon::ThreadPoolBuilder::new().thread_name(|i| format!("rayon-{}", i)).build_global()?;
- let crates = Arc::new(kitchen_sink::KitchenSink::new_default()?);
+ let crates = Arc::new(kitchen_sink::KitchenSink::new_default().await?);
crates.prewarm();
let image_filter = Arc::new(ImageOptimAPIFilter::new("czjpqfbdkz", crates.main_cache_dir().join("images.db"))?);
let markup = &Renderer::new_filter(Some(Highlighter::new()), image_filter);
diff --git a/front_end/src/bin/website.rs b/front_end/src/bin/website.rs
index d5883d7..6f6b582 100644
--- a/front_end/src/bin/website.rs
+++ b/front_end/src/bin/website.rs
@@ -26,8 +26,9 @@ use std::sync::Arc;
///
/// See home_page.rs for interesting bits
///
-fn main() {
- if let Err(e) = run() {
+#[tokio::main]
+async fn main() {
+ if let Err(e) = run().await {
eprintln!("Website generation failed: {}", e);
for c in e.iter_chain() {
eprintln!("error: -- {} {:?}", c, c);
@@ -36,10 +37,10 @@ fn main() {
}
}
-fn run() -> Result<(), failure::Error> {
+async fn run() -> Result<(), failure::Error> {
let mut out = BufWriter::new(File::create("public/index.html").context("write to public/index.html")?);
let mut feed = BufWriter::new(File::create("public/atom.xml").context("write to public/index.html")?);
- let crates = KitchenSink::new_default().context("init caches, data, etc.")?;
+ let crates = KitchenSink::new_default().await.context("init caches, data, etc.")?;
let done_pages = Mutex::new(HashSet::with_capacity(5000));
let image_filter = Arc::new(ImageOptimAPIFilter::new("czjpqfbdkz", crates.main_cache_dir().join("images.db"))?);
let markup = Renderer::new_filter(Some(Highlighter::new()), image_filter);