Some checks failed
Run Check Script / check (pull_request) Failing after 19s
41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
//! Example: fetch and display OPNsense firmware/version information.
|
|
//!
|
|
//! ```text
|
|
//! cargo run --example firmware_info
|
|
//! ```
|
|
|
|
use std::env;
|
|
|
|
use opnsense_api::client::OpnsenseClient;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
|
|
|
|
let base_url =
|
|
env::var("OPNSENSE_BASE_URL").unwrap_or_else(|_| "https://192.168.1.1/api".to_string());
|
|
|
|
let client = match (
|
|
env::var("OPNSENSE_API_KEY").ok(),
|
|
env::var("OPNSENSE_API_SECRET").ok(),
|
|
) {
|
|
(Some(key), Some(secret)) => OpnsenseClient::builder()
|
|
.base_url(&base_url)
|
|
.auth_from_key_secret(&key, &secret)
|
|
.skip_tls_verify()
|
|
.build()
|
|
.expect("failed to build HTTP client"),
|
|
_ => {
|
|
eprintln!("ERROR: OPNSENSE_API_KEY and OPNSENSE_API_SECRET must be set.");
|
|
std::process::exit(1);
|
|
}
|
|
};
|
|
|
|
let resp: serde_json::Value = client
|
|
.get_typed("core", "firmware", "status")
|
|
.await
|
|
.expect("API call failed");
|
|
|
|
println!("{}", serde_json::to_string_pretty(&resp).unwrap());
|
|
}
|