mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-08-08 06:22:39 -04:00
Introduce --json
flag for the CLI
When `--json` is used the CLI does not log to file, but only on the command line in json output.
This commit is contained in:
parent
9ff29ae491
commit
0187d9ef4f
3 changed files with 132 additions and 21 deletions
|
@ -29,6 +29,7 @@ const DEFAULT_TOR_SOCKS5_PORT: &str = "9050";
|
|||
pub struct Arguments {
|
||||
pub env_config: env::Config,
|
||||
pub debug: bool,
|
||||
pub json: bool,
|
||||
pub data_dir: PathBuf,
|
||||
pub cmd: Command,
|
||||
}
|
||||
|
@ -42,6 +43,7 @@ where
|
|||
let args = RawArguments::from_clap(&matches);
|
||||
|
||||
let debug = args.debug;
|
||||
let json = args.json;
|
||||
let is_testnet = args.testnet;
|
||||
let data = args.data;
|
||||
|
||||
|
@ -63,6 +65,7 @@ where
|
|||
} => Ok(Arguments {
|
||||
env_config: env_config_from(is_testnet),
|
||||
debug,
|
||||
json,
|
||||
data_dir: data::data_dir_from(data, is_testnet)?,
|
||||
cmd: Command::BuyXmr {
|
||||
seller_peer_id,
|
||||
|
@ -86,6 +89,7 @@ where
|
|||
RawCommand::History => Ok(Arguments {
|
||||
env_config: env_config_from(is_testnet),
|
||||
debug,
|
||||
json,
|
||||
data_dir: data::data_dir_from(data, is_testnet)?,
|
||||
cmd: Command::History,
|
||||
}),
|
||||
|
@ -106,6 +110,7 @@ where
|
|||
} => Ok(Arguments {
|
||||
env_config: env_config_from(is_testnet),
|
||||
debug,
|
||||
json,
|
||||
data_dir: data::data_dir_from(data, is_testnet)?,
|
||||
cmd: Command::Resume {
|
||||
swap_id,
|
||||
|
@ -134,6 +139,7 @@ where
|
|||
} => Ok(Arguments {
|
||||
env_config: env_config_from(is_testnet),
|
||||
debug,
|
||||
json,
|
||||
data_dir: data::data_dir_from(data, is_testnet)?,
|
||||
cmd: Command::Cancel {
|
||||
swap_id,
|
||||
|
@ -156,6 +162,7 @@ where
|
|||
} => Ok(Arguments {
|
||||
env_config: env_config_from(is_testnet),
|
||||
debug,
|
||||
json,
|
||||
data_dir: data::data_dir_from(data, is_testnet)?,
|
||||
cmd: Command::Refund {
|
||||
swap_id,
|
||||
|
@ -225,6 +232,13 @@ pub struct RawArguments {
|
|||
#[structopt(long, help = "Activate debug logging.")]
|
||||
pub debug: bool,
|
||||
|
||||
#[structopt(
|
||||
short,
|
||||
long = "json",
|
||||
help = "Changes the log messages to json vs plain-text. This can be helpful to simplify automated log analyses."
|
||||
)]
|
||||
pub json: bool,
|
||||
|
||||
#[structopt(subcommand)]
|
||||
pub cmd: RawCommand,
|
||||
}
|
||||
|
@ -765,11 +779,77 @@ mod tests {
|
|||
assert_eq!(args, Arguments::resume_testnet_defaults().with_debug());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn given_with_json_then_json_set() {
|
||||
let raw_ars = vec![
|
||||
BINARY_NAME,
|
||||
"--json",
|
||||
"buy-xmr",
|
||||
"--receive-address",
|
||||
MONERO_MAINNET_ADDRESS,
|
||||
"--seller-addr",
|
||||
MUTLI_ADDRESS,
|
||||
"--seller-peer-id",
|
||||
PEER_ID,
|
||||
];
|
||||
|
||||
let args = parse_args_and_apply_defaults(raw_ars).unwrap();
|
||||
assert_eq!(args, Arguments::buy_xmr_mainnet_defaults().with_json());
|
||||
|
||||
let raw_ars = vec![
|
||||
BINARY_NAME,
|
||||
"--testnet",
|
||||
"--json",
|
||||
"buy-xmr",
|
||||
"--receive-address",
|
||||
MONERO_STAGENET_ADDRESS,
|
||||
"--seller-addr",
|
||||
MUTLI_ADDRESS,
|
||||
"--seller-peer-id",
|
||||
PEER_ID,
|
||||
];
|
||||
|
||||
let args = parse_args_and_apply_defaults(raw_ars).unwrap();
|
||||
assert_eq!(args, Arguments::buy_xmr_testnet_defaults().with_json());
|
||||
|
||||
let raw_ars = vec![
|
||||
BINARY_NAME,
|
||||
"--json",
|
||||
"resume",
|
||||
"--swap-id",
|
||||
SWAP_ID,
|
||||
"--receive-address",
|
||||
MONERO_MAINNET_ADDRESS,
|
||||
"--seller-addr",
|
||||
MUTLI_ADDRESS,
|
||||
];
|
||||
|
||||
let args = parse_args_and_apply_defaults(raw_ars).unwrap();
|
||||
assert_eq!(args, Arguments::resume_mainnet_defaults().with_json());
|
||||
|
||||
let raw_ars = vec![
|
||||
BINARY_NAME,
|
||||
"--testnet",
|
||||
"--json",
|
||||
"resume",
|
||||
"--swap-id",
|
||||
SWAP_ID,
|
||||
"--receive-address",
|
||||
MONERO_STAGENET_ADDRESS,
|
||||
"--seller-addr",
|
||||
MUTLI_ADDRESS,
|
||||
];
|
||||
|
||||
let args = parse_args_and_apply_defaults(raw_ars).unwrap();
|
||||
assert_eq!(args, Arguments::resume_testnet_defaults().with_json());
|
||||
}
|
||||
|
||||
impl Arguments {
|
||||
pub fn buy_xmr_testnet_defaults() -> Self {
|
||||
Self {
|
||||
env_config: env::Testnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(TESTNET),
|
||||
cmd: Command::BuyXmr {
|
||||
seller_peer_id: PeerId::from_str(PEER_ID).unwrap(),
|
||||
|
@ -789,6 +869,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Mainnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(MAINNET),
|
||||
cmd: Command::BuyXmr {
|
||||
seller_peer_id: PeerId::from_str(PEER_ID).unwrap(),
|
||||
|
@ -807,6 +888,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Testnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(TESTNET),
|
||||
cmd: Command::Resume {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -826,6 +908,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Mainnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(MAINNET),
|
||||
cmd: Command::Resume {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -844,6 +927,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Testnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(TESTNET),
|
||||
cmd: Command::Cancel {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -859,6 +943,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Mainnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(MAINNET),
|
||||
cmd: Command::Cancel {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -873,6 +958,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Testnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(TESTNET),
|
||||
cmd: Command::Refund {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -888,6 +974,7 @@ mod tests {
|
|||
Self {
|
||||
env_config: env::Mainnet::get_config(),
|
||||
debug: false,
|
||||
json: false,
|
||||
data_dir: data_dir_path_cli().join(MAINNET),
|
||||
cmd: Command::Refund {
|
||||
swap_id: Uuid::from_str(SWAP_ID).unwrap(),
|
||||
|
@ -907,6 +994,11 @@ mod tests {
|
|||
self.debug = true;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_json(mut self) -> Self {
|
||||
self.json = true;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
fn data_dir_path_cli() -> PathBuf {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue