|
|
|
@ -1,47 +1,15 @@
|
|
|
|
|
#![feature(proc_macro_hygiene, decl_macro, custom_derive, vec_remove_item, try_trait, nll)]
|
|
|
|
|
#![feature(proc_macro_hygiene, decl_macro, vec_remove_item, try_trait)]
|
|
|
|
|
#![recursion_limit = "128"]
|
|
|
|
|
#![allow(proc_macro_derive_resolution_fallback)] // TODO: Remove this when diesel update fixes warnings
|
|
|
|
|
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate rocket;
|
|
|
|
|
extern crate rocket_contrib;
|
|
|
|
|
extern crate reqwest;
|
|
|
|
|
extern crate multipart;
|
|
|
|
|
extern crate ws;
|
|
|
|
|
extern crate rmpv;
|
|
|
|
|
extern crate chashmap;
|
|
|
|
|
extern crate serde;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate serde_derive;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate serde_json;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate log;
|
|
|
|
|
extern crate fern;
|
|
|
|
|
#[cfg(feature = "enable_syslog")]
|
|
|
|
|
extern crate syslog;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate diesel;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate diesel_migrations;
|
|
|
|
|
extern crate ring;
|
|
|
|
|
extern crate uuid;
|
|
|
|
|
extern crate chrono;
|
|
|
|
|
extern crate oath;
|
|
|
|
|
extern crate data_encoding;
|
|
|
|
|
extern crate jsonwebtoken as jwt;
|
|
|
|
|
extern crate u2f;
|
|
|
|
|
extern crate yubico;
|
|
|
|
|
extern crate dotenv;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate lazy_static;
|
|
|
|
|
#[macro_use]
|
|
|
|
|
extern crate num_derive;
|
|
|
|
|
extern crate num_traits;
|
|
|
|
|
extern crate lettre;
|
|
|
|
|
extern crate lettre_email;
|
|
|
|
|
extern crate native_tls;
|
|
|
|
|
extern crate byteorder;
|
|
|
|
|
#[macro_use] extern crate rocket;
|
|
|
|
|
#[macro_use] extern crate serde_derive;
|
|
|
|
|
#[macro_use] extern crate serde_json;
|
|
|
|
|
#[macro_use] extern crate log;
|
|
|
|
|
#[macro_use] extern crate diesel;
|
|
|
|
|
#[macro_use] extern crate diesel_migrations;
|
|
|
|
|
#[macro_use] extern crate lazy_static;
|
|
|
|
|
#[macro_use] extern crate num_derive;
|
|
|
|
|
|
|
|
|
|
use std::{path::Path, process::{exit, Command}};
|
|
|
|
|
use rocket::Rocket;
|
|
|
|
@ -75,7 +43,7 @@ mod migrations {
|
|
|
|
|
|
|
|
|
|
pub fn run_migrations() {
|
|
|
|
|
// Make sure the database is up to date (create if it doesn't exist, or run the migrations)
|
|
|
|
|
let connection = ::db::get_connection().expect("Can't conect to DB");
|
|
|
|
|
let connection = crate::db::get_connection().expect("Can't conect to DB");
|
|
|
|
|
|
|
|
|
|
use std::io::stdout;
|
|
|
|
|
embedded_migrations::run_with_output(&connection, &mut stdout()).expect("Can't run migrations");
|
|
|
|
@ -234,7 +202,7 @@ pub struct MailConfig {
|
|
|
|
|
|
|
|
|
|
impl MailConfig {
|
|
|
|
|
fn load() -> Option<Self> {
|
|
|
|
|
use util::{get_env, get_env_or};
|
|
|
|
|
use crate::util::{get_env, get_env_or};
|
|
|
|
|
|
|
|
|
|
// When SMTP_HOST is absent, we assume the user does not want to enable it.
|
|
|
|
|
let smtp_host = match get_env("SMTP_HOST") {
|
|
|
|
@ -316,7 +284,7 @@ pub struct Config {
|
|
|
|
|
|
|
|
|
|
impl Config {
|
|
|
|
|
fn load() -> Self {
|
|
|
|
|
use util::{get_env, get_env_or};
|
|
|
|
|
use crate::util::{get_env, get_env_or};
|
|
|
|
|
dotenv::dotenv().ok();
|
|
|
|
|
|
|
|
|
|
let df = get_env_or("DATA_FOLDER", "data".to_string());
|
|
|
|
|