···11+use std::env;
22+33+use anyhow::Result;
44+use smokesignal::config::{default_env, optional_env, version, CertificateBundles, DnsNameservers};
55+use tracing_subscriber::{layer::SubscriberExt as _, util::SubscriberInitExt as _};
66+77+#[tokio::main]
88+async fn main() -> Result<()> {
99+ tracing_subscriber::registry()
1010+ .with(tracing_subscriber::EnvFilter::new(
1111+ std::env::var("RUST_LOG").unwrap_or_else(|_| "trace".into()),
1212+ ))
1313+ .with(tracing_subscriber::fmt::layer().pretty())
1414+ .init();
1515+1616+ let certificate_bundles: CertificateBundles = optional_env("CERTIFICATE_BUNDLES").try_into()?;
1717+ let default_user_agent = format!("smokesignal ({}; +https://smokesignal.events/)", version()?);
1818+ let user_agent = default_env("USER_AGENT", &default_user_agent);
1919+ let dns_nameservers: DnsNameservers = optional_env("DNS_NAMESERVERS").try_into()?;
2020+2121+ let mut client_builder = reqwest::Client::builder();
2222+ for ca_certificate in certificate_bundles.as_ref() {
2323+ tracing::info!("Loading CA certificate: {:?}", ca_certificate);
2424+ let cert = std::fs::read(ca_certificate)?;
2525+ let cert = reqwest::Certificate::from_pem(&cert)?;
2626+ client_builder = client_builder.add_root_certificate(cert);
2727+ }
2828+2929+ client_builder = client_builder.user_agent(user_agent);
3030+ let http_client = client_builder.build()?;
3131+3232+ // Initialize the DNS resolver with configuration from the app config
3333+ let dns_resolver = smokesignal::resolve::create_resolver(dns_nameservers);
3434+3535+ for subject in env::args() {
3636+ let resolved_did =
3737+ smokesignal::resolve::resolve_subject(&http_client, &dns_resolver, &subject).await;
3838+ tracing::info!(?resolved_did, ?subject, "resolved subject");
3939+ }
4040+4141+ Ok(())
4242+}
+1-1
src/bin/smokesignal.rs
···8080 let jinja = reload_env::build_env(&config.external_base, &config.version);
81818282 // Initialize the DNS resolver with configuration from the app config
8383- let dns_resolver = create_resolver(&config);
8383+ let dns_resolver = create_resolver(config.dns_nameservers.clone());
84848585 let web_context = WebContext::new(
8686 pool.clone(),