media-collection-crud/src/main.rs

49 lines
1.0 KiB
Rust
Raw Normal View History

2019-03-28 17:24:19 -04:00
use env_logger;
2019-03-29 16:12:28 -04:00
use handlebars::Handlebars;
use handlebars_iron::{DirectorySource, HandlebarsEngine};
use iron::prelude::Iron;
2019-03-29 16:12:28 -04:00
use std::error::Error;
use std::sync::Arc;
2019-03-28 17:24:19 -04:00
2019-03-29 16:12:28 -04:00
use media_collection_crud::{chain, db};
fn template_engine() -> Arc<HandlebarsEngine> {
let views_ext = ".hbs";
let views_path = "./src/views";
let hbs = Handlebars::new();
let mut hbse = HandlebarsEngine::from(hbs);
hbse.add(Box::new(
DirectorySource::new(views_path, views_ext)
));
if let Err(r) = hbse.reload() {
panic!("{:?}", r.description());
}
let hbse_ref = Arc::new(hbse);
if cfg!(debug_assertions) {
println!("Templates are being watched.");
use handlebars_iron::Watchable;
hbse_ref.watch(views_path);
}
hbse_ref
}
2019-03-26 16:00:35 -04:00
fn main() {
2019-03-28 17:24:19 -04:00
env_logger::init();
db::establish_connection();
let port = 8000;
let bind_addr = format!("localhost:{}", port);
let mut chain = chain::init();
2019-03-29 16:12:28 -04:00
let templating_engine = template_engine();
chain.link_after(templating_engine);
2019-04-08 09:00:17 -04:00
Iron::new(chain)
2019-03-28 17:24:19 -04:00
.http(bind_addr.as_str())
2019-03-26 16:00:35 -04:00
.unwrap();
}