flowey_lib_hvlite/_jobs/
cfg_hvlite_reposource.rs1use flowey::node::prelude::*;
7
8flowey_request! {
9 #[derive(Clone)]
10 pub struct Params {
11 pub hvlite_repo_source: flowey_lib_common::git_checkout::RepoSource,
12 }
13}
14
15new_simple_flow_node!(struct Node);
16
17impl SimpleFlowNode for Node {
18 type Request = Params;
19
20 fn imports(ctx: &mut ImportCtx<'_>) {
21 ctx.import::<crate::git_checkout_openvmm_repo::Node>();
22 ctx.import::<flowey_lib_common::git_checkout::Node>();
23 }
24
25 fn process_request(request: Self::Request, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
26 let Params { hvlite_repo_source } = request;
27
28 if matches!(ctx.backend(), FlowBackend::Local) {
29 ctx.req(
30 flowey_lib_common::git_checkout::Request::LocalOnlyRequireExistingClones(
31 !matches!(
32 hvlite_repo_source,
33 flowey_lib_common::git_checkout::RepoSource::LocalOnlyNewClone { .. }
34 ),
35 ),
36 );
37 }
38
39 ctx.req(flowey_lib_common::git_checkout::Request::RegisterRepo {
40 repo_id: "openvmm".into(),
41 repo_src: hvlite_repo_source,
42 allow_persist_credentials: false,
43 depth: Some(1), pre_run_deps: Vec::new(), });
46
47 ctx.req(crate::git_checkout_openvmm_repo::req::SetRepoId(
48 ReadVar::from_static("openvmm".into()),
49 ));
50
51 Ok(())
52 }
53}