diff --git a/Cargo.lock b/Cargo.lock index 709f80b..e4ade8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -993,12 +993,8 @@ name = "hostd" version = "0.2.0" dependencies = [ "anyhow", - "serde", - "serde_derive", - "serde_json", - "tokio", + "internal", "varlink", - "varlink_generator", ] [[package]] @@ -1357,6 +1353,17 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "internal" +version = "0.2.0" +dependencies = [ + "serde", + "serde_derive", + "serde_json", + "varlink", + "varlink_generator", +] + [[package]] name = "ipnet" version = "2.10.1" diff --git a/Cargo.toml b/Cargo.toml index b38030e..99e13c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ members = [ "hostd", "trace-request", "xtask", + "internal", ] default-members = [ "agent", diff --git a/hostd/Cargo.toml b/hostd/Cargo.toml index fc9c6c3..464fa55 100644 --- a/hostd/Cargo.toml +++ b/hostd/Cargo.toml @@ -5,11 +5,5 @@ edition.workspace = true [dependencies] anyhow.workspace = true -serde.workspace = true -serde_derive = "1.0.217" -serde_json = "1.0.135" -tokio.workspace = true varlink = "11.0.1" - -[build-dependencies] -varlink_generator = "10.1.0" +internal = { path = "../internal" } diff --git a/hostd/build.rs b/hostd/build.rs deleted file mode 100644 index bea0698..0000000 --- a/hostd/build.rs +++ /dev/null @@ -1,6 +0,0 @@ -extern crate varlink_generator; - -fn main() { - varlink_generator::cargo_build_tosource("src/io.systemd.hostname.varlink", true); - varlink_generator::cargo_build_tosource("src/io.patagia.hostd.varlink", true); -} diff --git a/hostd/src/main.rs b/hostd/src/main.rs index 3e9dccb..3ebbabe 100644 --- a/hostd/src/main.rs +++ b/hostd/src/main.rs @@ -1,8 +1,6 @@ use anyhow::Result; -use crate::io_patagia_hostd::{Call_Apply, Call_Describe, Label, Machine, VarlinkInterface}; - -mod io_patagia_hostd; +use internal::io_patagia_hostd::{Call_Apply, Call_Describe, Label, Machine, VarlinkInterface}; const LISTEN_ADDRESS: &str = "unix:/tmp/patagia/io.patagia.hostd"; @@ -37,7 +35,7 @@ impl VarlinkInterface for PatagiaHostd { fn main() -> Result<()> { let hostd = PatagiaHostd; - let hostd_iface = io_patagia_hostd::new(Box::new(hostd)); + let hostd_iface = internal::io_patagia_hostd::new(Box::new(hostd)); let svc = varlink::VarlinkService::new( "io.patagia.hostd", diff --git a/internal/.gitignore b/internal/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/internal/.gitignore @@ -0,0 +1 @@ +/target diff --git a/internal/Cargo.toml b/internal/Cargo.toml new file mode 100644 index 0000000..f0a2b58 --- /dev/null +++ b/internal/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "internal" +version.workspace = true +edition.workspace = true + +[dependencies] +serde.workspace = true +serde_derive = "1.0.217" +serde_json = "1.0.135" +varlink = "11.0.1" + +[build-dependencies] +varlink_generator = "10.1.0" diff --git a/internal/build.rs b/internal/build.rs new file mode 100644 index 0000000..0b22cad --- /dev/null +++ b/internal/build.rs @@ -0,0 +1,11 @@ +extern crate varlink_generator; + +fn main() { + // iterate over all varlink files + std::fs::read_dir("src").unwrap().for_each(|f| { + let f = f.unwrap(); + if f.file_name().to_str().unwrap().ends_with(".varlink") { + varlink_generator::cargo_build_tosource(&f.path().display().to_string(), true); + } + }); +} diff --git a/hostd/src/io.patagia.hostd.varlink b/internal/src/io.patagia.hostd.varlink similarity index 100% rename from hostd/src/io.patagia.hostd.varlink rename to internal/src/io.patagia.hostd.varlink diff --git a/hostd/src/io.systemd.hostname.varlink b/internal/src/io.systemd.hostname.varlink similarity index 100% rename from hostd/src/io.systemd.hostname.varlink rename to internal/src/io.systemd.hostname.varlink diff --git a/hostd/src/io_patagia_hostd.rs b/internal/src/io_patagia_hostd.rs similarity index 100% rename from hostd/src/io_patagia_hostd.rs rename to internal/src/io_patagia_hostd.rs diff --git a/hostd/src/io_systemd_hostname.rs b/internal/src/io_systemd_hostname.rs similarity index 100% rename from hostd/src/io_systemd_hostname.rs rename to internal/src/io_systemd_hostname.rs diff --git a/internal/src/lib.rs b/internal/src/lib.rs new file mode 100644 index 0000000..8e3b981 --- /dev/null +++ b/internal/src/lib.rs @@ -0,0 +1,2 @@ +pub mod io_patagia_hostd; +pub mod io_systemd_hostname;