quartz_cli/action/
snippet.rs1use crate::{cli::SnippetCmd as Cmd, endpoint::EndpointPatch, snippet, Ctx, PairMap, QuartzResult};
2
3#[derive(clap::Args, Debug)]
4pub struct Args {
5 #[arg(long = "var", short = 'v', value_name = "KEY=VALUE")]
7 variables: Vec<String>,
8
9 #[command(flatten)]
10 patch: EndpointPatch,
11
12 #[command(subcommand)]
13 command: crate::cli::SnippetCmd,
14}
15
16pub fn cmd(ctx: &Ctx, mut args: Args) -> QuartzResult {
17 let (_, mut endpoint) = ctx.require_endpoint();
18 let mut env = ctx.require_env();
19
20 for var in args.variables {
21 env.variables.set(&var);
22 }
23
24 endpoint.update(&mut args.patch);
25 endpoint.apply_env(&env);
26
27 match args.command {
28 Cmd::Curl(curl) => curl.print(&mut endpoint)?,
29 Cmd::Http => snippet::Http::print(&mut endpoint)?,
30 };
31
32 Ok(())
33}