X-Git-Url: http://these/git/?a=blobdiff_plain;f=server%2Fsrc%2Fmain.rs;h=88d62eb997c9fd374a4a1fc3661257d1f64029a0;hb=1336b4ed6023e7fcf0fd40be63569966ee4b1b45;hp=f3887527571a43b7424295a5d599dff3eb26bd74;hpb=641e4c5d96d9d152bc75318b3ea08f789d920b2b;p=lemmy.git diff --git a/server/src/main.rs b/server/src/main.rs index f3887527..88d62eb9 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -6,15 +6,21 @@ use actix::prelude::*; use actix_web::*; use diesel::r2d2::{ConnectionManager, Pool}; use diesel::PgConnection; +use failure::Error; +use lemmy_server::apub::fetcher::fetch_all; +use lemmy_server::db::code_migrations::run_advanced_migrations; use lemmy_server::routes::{api, federation, feeds, index, nodeinfo, webfinger, websocket}; use lemmy_server::settings::Settings; use lemmy_server::websocket::server::*; -use std::io; +use log::warn; +use std::thread; +use std::thread::sleep; +use std::time::Duration; embed_migrations!(); #[actix_rt::main] -async fn main() -> io::Result<()> { +async fn main() -> Result<(), Error> { env_logger::init(); let settings = Settings::get(); @@ -28,41 +34,54 @@ async fn main() -> io::Result<()> { // Run the migrations from code let conn = pool.get().unwrap(); embedded_migrations::run(&conn).unwrap(); + run_advanced_migrations(&conn).unwrap(); // Set up websocket server let server = ChatServer::startup(pool.clone()).start(); + thread::spawn(move || { + // some work here + sleep(Duration::from_secs(5)); + println!("Fetching apub data"); + match fetch_all(&conn) { + Ok(_) => {} + Err(e) => warn!("Error during apub fetch: {}", e), + } + }); + println!( "Starting http server at {}:{}", settings.bind, settings.port ); // Create Http server with websocket support - HttpServer::new(move || { - let settings = Settings::get(); - App::new() - .wrap(middleware::Logger::default()) - .data(pool.clone()) - .data(server.clone()) - // The routes - .configure(api::config) - .configure(federation::config) - .configure(feeds::config) - .configure(index::config) - .configure(nodeinfo::config) - .configure(webfinger::config) - .configure(websocket::config) - // static files - .service(actix_files::Files::new( - "/static", - settings.front_end_dir.to_owned(), - )) - .service(actix_files::Files::new( - "/docs", - settings.front_end_dir + "/documentation", - )) - }) - .bind((settings.bind, settings.port))? - .run() - .await + Ok( + HttpServer::new(move || { + let settings = Settings::get(); + App::new() + .wrap(middleware::Logger::default()) + .data(pool.clone()) + .data(server.clone()) + // The routes + .configure(api::config) + .configure(federation::config) + .configure(feeds::config) + .configure(index::config) + .configure(nodeinfo::config) + .configure(webfinger::config) + .configure(websocket::config) + // static files + .service(actix_files::Files::new( + "/static", + settings.front_end_dir.to_owned(), + )) + .service(actix_files::Files::new( + "/docs", + settings.front_end_dir.to_owned() + "/documentation", + )) + }) + .bind((settings.bind, settings.port))? + .run() + .await?, + ) }