This commit is contained in:
2024-11-24 23:09:29 +00:00
parent 1dd72fd011
commit 13f59908fb
19 changed files with 2774 additions and 306 deletions

View File

@ -2,10 +2,10 @@ use anyhow::Error;
use config::{Config, File};
use lnvps::api;
use lnvps::cors::CORS;
use lnvps::provisioner::Provisioner;
use lnvps::provisioner::{LNVpsProvisioner, Provisioner};
use lnvps_db::{LNVpsDb, LNVpsDbMysql};
use log::error;
use serde::{Deserialize, Serialize};
use sqlx::{Executor, MySqlPool};
#[derive(Debug, Deserialize, Serialize)]
pub struct Settings {
@ -17,13 +17,14 @@ async fn main() -> Result<(), Error> {
pretty_env_logger::init();
let config: Settings = Config::builder()
.add_source(File::with_name("config.toml"))
.add_source(File::with_name("config.yaml"))
.build()?
.try_deserialize()?;
let db = MySqlPool::connect(&config.db).await?;
sqlx::migrate!().run(&db).await?;
let provisioner = Provisioner::new(db.clone());
let db = LNVpsDbMysql::new(&config.db).await?;
db.migrate().await?;
let provisioner = LNVpsProvisioner::new(db.clone());
#[cfg(debug_assertions)]
{
let setup_script = include_str!("../../dev_setup.sql");
@ -31,9 +32,12 @@ async fn main() -> Result<(), Error> {
provisioner.auto_discover().await?;
}
let db: Box<dyn LNVpsDb> = Box::new(db.clone());
let pv: Box<dyn Provisioner> = Box::new(provisioner);
if let Err(e) = rocket::build()
.attach(CORS)
.manage(provisioner)
.manage(db)
.manage(pv)
.mount("/", api::routes())
.launch()
.await