use anyhow::Result;
use bc_envelope::prelude::*;
use clap::Args;
use crate::read_envelope;
#[derive(Debug, Args)]
#[group(skip)]
pub struct CommandArgs {
vendor: String,
#[arg(long, short)]
conforms_to: Option<String>,
payload: Option<String>,
}
impl crate::Exec for CommandArgs {
fn exec(&self) -> Result<String> {
let payload = read_envelope(self.payload.as_deref())?;
let assertion = Envelope::new_attachment(
payload,
self.vendor.as_str(),
self.conforms_to.as_deref(),
);
Ok(assertion.ur_string())
}
}