feat: fix minor bugs

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2024-08-24 14:55:26 +02:00
parent c2b7e44ea3
commit 1ba6cf79c0
12 changed files with 405 additions and 21 deletions

View File

@@ -1,8 +1,11 @@
use plan::Plan;
use plan::{ClonedPlan, Plan};
use project::ProjectPlan;
use state::ValidatedState;
mod plan;
mod project;
mod schema_validator;
mod state;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
@@ -13,6 +16,8 @@ async fn main() -> anyhow::Result<()> {
.prepare_project()
.await?
.prepare_plan()
.await?
.build_state()
.await?;
Ok(())
@@ -25,7 +30,7 @@ struct PrepareProject {
struct PreparePlan {
project: Option<ProjectPlan>,
plan: Option<Plan>,
plan: Option<ClonedPlan>,
}
struct Cuddle<S = Start> {
@@ -54,13 +59,32 @@ impl Cuddle<Start> {
impl Cuddle<PrepareProject> {
pub async fn prepare_plan(&self) -> anyhow::Result<Cuddle<PreparePlan>> {
if let Some(project) = &self.state.project {
match Plan::new().clone_from_project(project).await? {
Some(plan) => todo!(),
None => todo!(),
}
}
let plan = if let Some(project) = &self.state.project {
Plan::new().clone_from_project(project).await?
} else {
None
};
todo!()
Ok(Cuddle {
state: PreparePlan {
project: self.state.project.clone(),
plan,
},
})
}
}
impl Cuddle<PreparePlan> {
pub async fn build_state(&self) -> anyhow::Result<Cuddle<ValidatedState>> {
let state = if let Some(project) = &self.state.project {
let state = state::State::new();
let raw_state = state.build_state(project, &self.state.plan).await?;
state.validate_state(&raw_state).await?
} else {
ValidatedState {}
};
Ok(Cuddle { state })
}
}