kratactl: implement output formats

This commit is contained in:
Alex Zenla
2024-03-23 04:07:48 +00:00
parent 3b5e3a077a
commit 6c0e14da6a
8 changed files with 162 additions and 7 deletions

View File

@ -8,7 +8,9 @@ resolver = "2"
anyhow = { workspace = true }
libc = { workspace = true }
log = { workspace = true }
once_cell = { workspace = true }
prost = { workspace = true }
prost-reflect = { workspace = true }
serde = { workspace = true }
tokio = { workspace = true }
tonic = { workspace = true }
@ -16,6 +18,8 @@ url = { workspace = true }
[build-dependencies]
tonic-build = { workspace = true }
prost-build = { workspace = true }
prost-reflect-build = { workspace = true }
[lib]
name = "krata"

View File

@ -1,6 +1,14 @@
use std::io::Result;
fn main() -> Result<()> {
tonic_build::configure().compile(&["proto/krata/control.proto"], &["proto/"])?;
let mut config = prost_build::Config::new();
prost_reflect_build::Builder::new()
.descriptor_pool("crate::DESCRIPTOR_POOL")
.configure(&mut config, &["proto/krata/control.proto"], &["proto/"])?;
tonic_build::configure().compile_with_config(
config,
&["proto/krata/control.proto"],
&["proto/"],
)?;
Ok(())
}

View File

@ -1,3 +1,6 @@
use once_cell::sync::Lazy;
use prost_reflect::DescriptorPool;
pub mod common;
pub mod control;
pub mod dial;
@ -5,3 +8,10 @@ pub mod launchcfg;
#[cfg(target_os = "linux")]
pub mod ethtool;
pub static DESCRIPTOR_POOL: Lazy<DescriptorPool> = Lazy::new(|| {
DescriptorPool::decode(
include_bytes!(concat!(env!("OUT_DIR"), "/file_descriptor_set.bin")).as_ref(),
)
.unwrap()
});