difftreelog
feat info subcommand
in: trunk
4 files changed
cmds/fleet/src/cmds/info.rsdiffbeforeafterbothno changes
cmds/fleet/src/cmds/mod.rsdiffbeforeafterboth--- a/cmds/fleet/src/cmds/mod.rs
+++ b/cmds/fleet/src/cmds/mod.rs
@@ -1,2 +1,3 @@
pub mod build_systems;
pub mod secrets;
+pub mod info;
cmds/fleet/src/host.rsdiffbeforeafterboth--- a/cmds/fleet/src/host.rs
+++ b/cmds/fleet/src/host.rs
@@ -9,6 +9,7 @@
};
use anyhow::Result;
+use serde::de::DeserializeOwned;
use structopt::clap::ArgGroup;
use structopt::StructOpt;
@@ -80,6 +81,17 @@
.inherit_stdio()
.run_json()
}
+ pub fn config_attr<T: DeserializeOwned>(&self, host: &str, attr: &str) -> Result<T> {
+ Command::new("nix")
+ .arg("eval")
+ .arg(self.full_attr_name(&format!(
+ "fleetConfigurations.default.configuredSystems.{}.config.{}",
+ host, attr
+ )))
+ .args(&["--json", "--show-trace"])
+ .inherit_stdio()
+ .run_json()
+ }
pub fn data(&self) -> Ref<FleetData> {
self.data.borrow()
cmds/fleet/src/main.rsdiffbeforeafterboth--- a/cmds/fleet/src/main.rs
+++ b/cmds/fleet/src/main.rs
@@ -11,7 +11,7 @@
use structopt::clap::AppSettings::*;
use structopt::StructOpt;
-use cmds::{build_systems::BuildSystems, secrets::Secrets};
+use cmds::{build_systems::BuildSystems, info::Info, secrets::Secrets};
use host::{Config, FleetOpts};
#[derive(StructOpt)]
@@ -20,6 +20,8 @@
BuildSystems(BuildSystems),
/// Secret management
Secrets(Secrets),
+ /// Config parsing
+ Info(Info),
}
#[derive(StructOpt)]
@@ -40,6 +42,7 @@
match command {
Opts::BuildSystems(c) => c.run(config)?,
Opts::Secrets(s) => s.run(config)?,
+ Opts::Info(i) => i.run(config)?,
};
Ok(())
}