feat: add argument to output answers as json

This commit is contained in:
Moritz Böhme 2023-08-26 11:06:51 +02:00
parent 323c2fba18
commit 1a10f620b4
Signed by: moritz
GPG key ID: 970C6E89EB0547A9
4 changed files with 39 additions and 6 deletions

34
Cargo.lock generated
View file

@ -651,6 +651,12 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "itoa"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
[[package]]
name = "libc"
version = "0.2.147"
@ -976,10 +982,16 @@ dependencies = [
]
[[package]]
name = "serde"
version = "1.0.164"
name = "ryu"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
[[package]]
name = "serde"
version = "1.0.179"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a5bf42b8d227d4abf38a1ddb08602e229108a517cd4e5bb28f9c7eaafdce5c0"
dependencies = [
"serde_derive",
]
@ -996,15 +1008,26 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.164"
version = "1.0.179"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
checksum = "741e124f5485c7e60c03b043f79f320bff3527f4bbf12cf3831750dc46a0ec2c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
]
[[package]]
name = "serde_json"
version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "serde_repr"
version = "0.1.16"
@ -1170,6 +1193,7 @@ dependencies = [
"notify-rust",
"serde",
"serde_cbor",
"serde_json",
"signal-hook",
"thiserror",
]

View file

@ -14,5 +14,6 @@ libc = "0.2.147"
notify-rust = "4.8.0"
serde = { version = "1.0.164", features = ["derive"] }
serde_cbor = "0.11.2"
serde_json = "1.0.105"
signal-hook = "0.3.17"
thiserror = "1.0.44"

View file

@ -12,9 +12,13 @@ use std::time::Duration;
pub struct Cli {
#[command(subcommand)]
pub command: Command,
#[arg(short, long)]
#[clap(default_value_t = format!("{}/timers.socket", run_path()))]
pub socket: String,
#[arg(long)]
pub json: bool
}
#[derive(Debug, Subcommand)]

View file

@ -48,6 +48,10 @@ fn main() -> Result<(), anyhow::Error> {
}
};
let answer = send_command(&args.socket, daemon_command)?;
if args.json {
println!("{}", serde_json::to_string(&answer)?)
} else {
print!("{}", answer);
};
Ok(())
}