use anyhow::{Context, Result};
use cellos_fleet::{run, Config};
const BUILD_SHA: &str = match option_env!("VERGEN_GIT_SHA") {
Some(s) => s,
None => match option_env!("GIT_COMMIT") {
Some(s) => s,
None => "unknown",
},
};
#[tokio::main]
async fn main() -> Result<()> {
let args: Vec<String> = std::env::args().skip(1).collect();
if args
.first()
.map(|a| a == "--version" || a == "-V")
.unwrap_or(false)
{
let sha_short = if BUILD_SHA.len() > 7 {
&BUILD_SHA[..7]
} else {
BUILD_SHA
};
println!("cellos-fleet {} ({})", env!("CARGO_PKG_VERSION"), sha_short);
return Ok(());
}
{
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
use tracing_subscriber::Layer;
let fmt_layer = tracing_subscriber::fmt::layer()
.json()
.with_filter(cellos_core::observability::redacted_filter());
tracing_subscriber::registry()
.with(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("info")),
)
.with(fmt_layer)
.init();
}
let cfg = Config::from_env().context("failed to read configuration")?;
run(cfg).await
}
#[cfg(test)]
mod tests {
#[test]
fn version_compiles() {
let _ = format!(
"cellos-fleet {} ({})",
env!("CARGO_PKG_VERSION"),
super::BUILD_SHA
);
}
}