52 lines
1.1 KiB
Rust
52 lines
1.1 KiB
Rust
#[macro_use] extern crate diesel;
|
|
#[macro_use] extern crate mime;
|
|
|
|
use env_logger;
|
|
use handlebars::Handlebars;
|
|
use handlebars_iron::{DirectorySource, HandlebarsEngine};
|
|
use iron::prelude::Iron;
|
|
use std::error::Error;
|
|
use std::sync::Arc;
|
|
|
|
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
|
|
}
|
|
|
|
fn main() {
|
|
env_logger::init();
|
|
db::establish_connection();
|
|
|
|
let port = 8000;
|
|
let bind_addr = format!("localhost:{}", port);
|
|
|
|
let mut chain = chain::init();
|
|
let templating_engine = template_engine();
|
|
chain.link_after(templating_engine);
|
|
|
|
let _server_guard = Iron::new(chain)
|
|
.http(bind_addr.as_str())
|
|
.unwrap();
|
|
} |