aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
blob: 20fedf61ce31360daf71db6a464c706cba56059d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use std::sync::{Arc, Mutex};
use sqlx::{Connection, SqliteConnection};

mod config;
mod ui;

struct AppState {
    conf : config::Config,
    db : Mutex<SqliteConnection>
}

type SharedState = Arc<Mutex<AppState>>;

#[tokio::main]
async fn main() -> std::io::Result<()> {

    // simple_logger::

    let mut conn = SqliteConnection::connect("sqlite:cats-radio-node.db").await.unwrap();
    sqlx::migrate!()
        .run(&mut conn)
        .await
        .expect("could not run SQLx migrations");

    let conf = config::Config::load().expect("Could not load config");

    let shared_state = Arc::new(Mutex::new(AppState {
        conf,
        db: Mutex::new(conn)
    }));

    ui::serve(3000, shared_state).await;
    Ok(())
}