pact_broker_cli/cli/
pactflow_client.rs1use clap::{ArgMatches, Command};
2use tracing::error;
3
4use crate::cli::{
5 pact_broker::main::utils::handle_error,
6 pactflow::main::{provider_contracts, subcommands::add_publish_provider_contract_subcommand},
7};
8pub fn add_pactflow_client_command() -> Command {
9 Command::new("pactflow")
10 .about("PactFlow specific commands")
11 .arg_required_else_help(true)
12 .subcommand(add_publish_provider_contract_subcommand())
13}
14
15pub fn run(args: &ArgMatches, raw_args: Vec<String>) -> Result<serde_json::Value, i32> {
16 match args.subcommand() {
17 Some(("publish-provider-contract", args)) => {
18 let res = provider_contracts::publish::publish(args);
19 if let Err(err) = res {
20 handle_error(err);
21 Err(1)
22 } else {
23 Ok(serde_json::to_value(res.unwrap()).unwrap())
24 }
25 }
26 _ => {
27 error!("⚠️ No option provided, try running --help");
28 Err(1)
29 }
30 }
31}