flowey_lib_hvlite/
cfg_openvmm_magicpath.rs1use flowey::node::prelude::*;
12
13flowey_request! {
14 pub struct Request(pub WriteVar<PathBuf>);
15}
16
17new_flow_node!(struct Node);
18
19impl FlowNode for Node {
20 type Request = Request;
21
22 fn imports(ctx: &mut ImportCtx<'_>) {
23 ctx.import::<crate::git_checkout_openvmm_repo::Node>();
24 }
25
26 fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
27 let repo_path = ctx.reqv(crate::git_checkout_openvmm_repo::req::GetRepoDir);
28
29 ctx.emit_minor_rust_step("report openvmm magicpath dir", |ctx| {
30 let repo_path = repo_path.claim(ctx);
31 let requests = requests
32 .into_iter()
33 .map(|x| x.0.claim(ctx))
34 .collect::<Vec<_>>();
35 |rt| {
36 let path = rt.read(repo_path).join(".packages");
37 rt.write_all(requests, &path);
38 }
39 });
40
41 Ok(())
42 }
43}