feat: read config from repository on every deploy and deployment update

This commit is contained in:
Aravinth Manivannan 2022-11-12 15:51:53 +05:30
parent 2d9d511bb8
commit b07f076634
Signed by: realaravinth
GPG Key ID: AD9F0F08E855ED88
1 changed files with 19 additions and 10 deletions

View File

@ -22,6 +22,7 @@ use crate::ctx::Ctx;
use crate::db::Site; use crate::db::Site;
use crate::errors::*; use crate::errors::*;
use crate::page::Page; use crate::page::Page;
use crate::page_config;
use crate::settings::Settings; use crate::settings::Settings;
use crate::subdomains::get_random_subdomain; use crate::subdomains::get_random_subdomain;
use crate::utils::get_random; use crate::utils::get_random;
@ -54,6 +55,9 @@ impl Ctx {
self.db.add_site(&db_site).await?; self.db.add_site(&db_site).await?;
let page = Page::from_site(&self.settings, db_site); let page = Page::from_site(&self.settings, db_site);
page.update(&page.branch)?; page.update(&page.branch)?;
if let Some(config) = page_config::Config::load(&page.path, &page.branch) {
unimplemented!();
}
Ok(page) Ok(page)
} }
@ -61,17 +65,22 @@ impl Ctx {
if let Ok(db_site) = self.db.get_site_from_secret(secret).await { if let Ok(db_site) = self.db.get_site_from_secret(secret).await {
let page = Page::from_site(&self.settings, db_site); let page = Page::from_site(&self.settings, db_site);
let (tx, rx) = oneshot::channel(); let (tx, rx) = oneshot::channel();
let page = page.clone(); {
web::block(move || { let page = page.clone();
if let Some(branch) = branch { web::block(move || {
tx.send(page.update(&branch)).unwrap(); if let Some(branch) = branch {
} else { tx.send(page.update(&branch)).unwrap();
tx.send(page.update(&page.branch)).unwrap(); } else {
} tx.send(page.update(&page.branch)).unwrap();
}) }
.await })
.unwrap(); .await
.unwrap();
}
rx.await.unwrap()?; rx.await.unwrap()?;
if let Some(config) = page_config::Config::load(&page.path, &page.branch) {
unimplemented!();
}
Ok(()) Ok(())
} else { } else {
Err(ServiceError::WebsiteNotFound) Err(ServiceError::WebsiteNotFound)