Publish: include proto in each crate and fix build.rs paths
This commit is contained in:
parent
a42ca71a9f
commit
8def4b2d06
@ -1,8 +1,14 @@
|
|||||||
fn main() {
|
fn main() {
|
||||||
|
// Vendored protoc for reproducible builds (works on crates.io build machines)
|
||||||
let protoc = protoc_bin_vendored::protoc_bin_path().expect("protoc");
|
let protoc = protoc_bin_vendored::protoc_bin_path().expect("protoc");
|
||||||
std::env::set_var("PROTOC", protoc);
|
std::env::set_var("PROTOC", &protoc);
|
||||||
|
|
||||||
|
// Tell Cargo when to re-run
|
||||||
|
println!("cargo:rerun-if-changed=proto/processes.proto");
|
||||||
|
|
||||||
let mut cfg = prost_build::Config::new();
|
let mut cfg = prost_build::Config::new();
|
||||||
cfg.out_dir(std::env::var("OUT_DIR").unwrap());
|
cfg.out_dir(std::env::var("OUT_DIR").unwrap());
|
||||||
cfg.compile_protos(&["../proto/processes.proto"], &["../proto"])
|
// Use in-crate relative path so `cargo package` includes the file
|
||||||
|
cfg.compile_protos(&["proto/processes.proto"], &["proto"]) // paths relative to CARGO_MANIFEST_DIR
|
||||||
.expect("compile protos");
|
.expect("compile protos");
|
||||||
}
|
}
|
||||||
|
|||||||
15
socktop/proto/processes.proto
Normal file
15
socktop/proto/processes.proto
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package socktop;
|
||||||
|
|
||||||
|
// All running processes. Sorting is done client-side.
|
||||||
|
message Processes {
|
||||||
|
uint64 process_count = 1; // total processes in the system
|
||||||
|
repeated Process rows = 2; // all processes
|
||||||
|
}
|
||||||
|
|
||||||
|
message Process {
|
||||||
|
uint32 pid = 1;
|
||||||
|
string name = 2;
|
||||||
|
float cpu_usage = 3; // 0..100
|
||||||
|
uint64 mem_bytes = 4; // RSS bytes
|
||||||
|
}
|
||||||
@ -1,11 +1,14 @@
|
|||||||
fn main() {
|
fn main() {
|
||||||
// Ensure protoc exists (vendored for reproducible builds)
|
// Vendored protoc for reproducible builds
|
||||||
let protoc = protoc_bin_vendored::protoc_bin_path().expect("protoc");
|
let protoc = protoc_bin_vendored::protoc_bin_path().expect("protoc");
|
||||||
std::env::set_var("PROTOC", protoc);
|
std::env::set_var("PROTOC", &protoc);
|
||||||
|
|
||||||
|
println!("cargo:rerun-if-changed=proto/processes.proto");
|
||||||
|
|
||||||
// Compile protobuf definitions for processes
|
// Compile protobuf definitions for processes
|
||||||
let mut cfg = prost_build::Config::new();
|
let mut cfg = prost_build::Config::new();
|
||||||
cfg.out_dir(std::env::var("OUT_DIR").unwrap());
|
cfg.out_dir(std::env::var("OUT_DIR").unwrap());
|
||||||
cfg.compile_protos(&["../proto/processes.proto"], &["../proto"])
|
// Use local path (ensures file is inside published crate tarball)
|
||||||
|
cfg.compile_protos(&["proto/processes.proto"], &["proto"]) // relative to CARGO_MANIFEST_DIR
|
||||||
.expect("compile protos");
|
.expect("compile protos");
|
||||||
}
|
}
|
||||||
|
|||||||
15
socktop_agent/proto/processes.proto
Normal file
15
socktop_agent/proto/processes.proto
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
package socktop;
|
||||||
|
|
||||||
|
// All running processes. Sorting is done client-side.
|
||||||
|
message Processes {
|
||||||
|
uint64 process_count = 1; // total processes in the system
|
||||||
|
repeated Process rows = 2; // all processes
|
||||||
|
}
|
||||||
|
|
||||||
|
message Process {
|
||||||
|
uint32 pid = 1;
|
||||||
|
string name = 2;
|
||||||
|
float cpu_usage = 3; // 0..100
|
||||||
|
uint64 mem_bytes = 4; // RSS bytes
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user