Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
parent
c0ae03376b
commit
8788f78f81
42
crates/cuddle-ci/src/cuddle_x.rs
Normal file
42
crates/cuddle-ci/src/cuddle_x.rs
Normal file
@ -0,0 +1,42 @@
|
||||
pub struct CuddleX {
|
||||
command: String,
|
||||
args: Vec<String>,
|
||||
}
|
||||
|
||||
impl CuddleX {
|
||||
pub fn command(command: impl Into<String>) -> Self {
|
||||
Self {
|
||||
command: command.into(),
|
||||
args: Vec::new(),
|
||||
}
|
||||
}
|
||||
pub fn arg(&mut self, arg: impl Into<String>) -> &mut Self {
|
||||
self.args.push(arg.into());
|
||||
|
||||
self
|
||||
}
|
||||
|
||||
pub async fn run(&mut self) -> eyre::Result<(String, String, i32)> {
|
||||
let mut cmd = tokio::process::Command::new("cuddle");
|
||||
|
||||
let cmd = cmd.arg("x").arg(&self.command).args(&self.args);
|
||||
|
||||
let output = cmd.output().await?;
|
||||
|
||||
Ok((
|
||||
std::str::from_utf8(&output.stdout)?.to_string(),
|
||||
std::str::from_utf8(&output.stderr)?.to_string(),
|
||||
output.status.code().unwrap_or(0),
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
pub mod well_known {
|
||||
use super::CuddleX;
|
||||
|
||||
pub async fn render() -> eyre::Result<()> {
|
||||
CuddleX::command("render").run().await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
@ -9,4 +9,5 @@ pub mod rust_service;
|
||||
pub mod cuddle_file;
|
||||
pub mod cuddle_please;
|
||||
pub mod cuddle_releaser;
|
||||
pub mod cuddle_x;
|
||||
pub mod dagger_middleware;
|
||||
|
Loading…
Reference in New Issue
Block a user