Use space-separated recipe paths in --choose (#2115)

This commit is contained in:
Casey Rodarmor 2024-05-30 12:24:06 -05:00 committed by GitHub
parent f5bb82dea3
commit d2b10e04d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 8 deletions

View File

@ -7,6 +7,13 @@ impl<'src> Namepath<'src> {
pub(crate) fn join(&self, name: Name<'src>) -> Self {
Self(self.0.iter().copied().chain(iter::once(name)).collect())
}
pub(crate) fn spaced(&self) -> ModulePath {
ModulePath {
path: self.0.iter().map(|name| name.lexeme().into()).collect(),
spaced: true,
}
}
}
impl<'src> Display for Namepath<'src> {

View File

@ -261,14 +261,15 @@ impl Subcommand {
};
for recipe in recipes {
if let Err(io_error) = child
.stdin
.as_mut()
.expect("Child was created with piped stdio")
.write_all(format!("{}\n", recipe.namepath).as_bytes())
{
return Err(Error::ChooserWrite { io_error, chooser });
}
writeln!(
child.stdin.as_mut().unwrap(),
"{}",
recipe.namepath.spaced()
)
.map_err(|io_error| Error::ChooserWrite {
io_error,
chooser: chooser.clone(),
})?;
}
let output = match child.wait_with_output() {