2024-06-19 07:03:08 +01:00
|
|
|
//
|
|
|
|
use actix::prelude::*;
|
2024-07-28 08:58:32 +01:00
|
|
|
|
2024-07-25 09:02:43 +01:00
|
|
|
use git_next_core::RepoConfigSource;
|
2024-06-19 07:03:08 +01:00
|
|
|
|
2024-07-28 08:58:32 +01:00
|
|
|
use tracing::warn;
|
|
|
|
|
|
|
|
use crate::repo::{
|
|
|
|
branch::advance_main,
|
|
|
|
do_send,
|
|
|
|
messages::{AdvanceMain, LoadConfigFromRepo, ValidateRepo},
|
|
|
|
RepoActor,
|
|
|
|
};
|
|
|
|
|
|
|
|
impl Handler<AdvanceMain> for RepoActor {
|
2024-06-19 07:03:08 +01:00
|
|
|
type Result = ();
|
|
|
|
#[tracing::instrument(name = "RepoActor::AdvanceMainTo", skip_all, fields(repo = %self.repo_details, commit = ?msg))]
|
2024-07-28 08:58:32 +01:00
|
|
|
fn handle(&mut self, msg: AdvanceMain, ctx: &mut Self::Context) -> Self::Result {
|
2024-06-19 07:03:08 +01:00
|
|
|
let Some(repo_config) = self.repo_details.repo_config.clone() else {
|
2024-07-28 08:58:32 +01:00
|
|
|
warn!("No config loaded");
|
2024-06-19 07:03:08 +01:00
|
|
|
return;
|
|
|
|
};
|
|
|
|
let Some(open_repository) = &self.open_repository else {
|
|
|
|
return;
|
|
|
|
};
|
|
|
|
let repo_details = self.repo_details.clone();
|
|
|
|
let addr = ctx.address();
|
|
|
|
let message_token = self.message_token;
|
|
|
|
|
2024-07-28 08:58:32 +01:00
|
|
|
match advance_main(
|
2024-06-19 07:03:08 +01:00
|
|
|
msg.unwrap(),
|
|
|
|
&repo_details,
|
|
|
|
&repo_config,
|
|
|
|
&**open_repository,
|
|
|
|
) {
|
|
|
|
Err(err) => {
|
2024-07-28 08:58:32 +01:00
|
|
|
warn!("advance main: {err}");
|
2024-06-19 07:03:08 +01:00
|
|
|
}
|
2024-08-05 07:39:38 +01:00
|
|
|
Ok(()) => match repo_config.source() {
|
2024-07-25 09:02:43 +01:00
|
|
|
RepoConfigSource::Repo => {
|
2024-08-05 07:39:38 +01:00
|
|
|
do_send(&addr, LoadConfigFromRepo, self.log.as_ref());
|
2024-06-19 07:03:08 +01:00
|
|
|
}
|
2024-07-25 09:02:43 +01:00
|
|
|
RepoConfigSource::Server => {
|
2024-08-05 07:39:38 +01:00
|
|
|
do_send(&addr, ValidateRepo::new(message_token), self.log.as_ref());
|
2024-07-21 09:32:08 +01:00
|
|
|
}
|
|
|
|
},
|
2024-06-19 07:03:08 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|