mirror of
https://codeberg.org/icewind/mitemp-prometheus.git
synced 2026-06-03 09:04:13 +02:00
cargo updates
This commit is contained in:
parent
cc5ac92510
commit
ef24512c03
3 changed files with 388 additions and 862 deletions
1254
Cargo.lock
generated
1254
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
24
Cargo.toml
24
Cargo.toml
|
|
@ -2,22 +2,22 @@
|
|||
name = "mitemp-prometheus"
|
||||
version = "0.3.0"
|
||||
authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
description = "Expose Xiaomi MI Temperature and Humidity Sensor to prometheus"
|
||||
license = "MIT/Apache-2.0"
|
||||
rust-version = "1.82.0"
|
||||
rust-version = "1.86.0"
|
||||
|
||||
[dependencies]
|
||||
dotenvy = "0.15.7"
|
||||
main_error = "0.1.2"
|
||||
tokio = { version = "1.45.1", features = ["macros", "rt-multi-thread"] }
|
||||
warp = "0.3.7"
|
||||
mitemp = "0.4.0"
|
||||
tokio-stream = { version = "0.1.17", features = ["net"] }
|
||||
btleplug = { version = "0.11.8", features = ["serde"] }
|
||||
tracing = "0.1.41"
|
||||
tracing-subscriber = "0.3.19"
|
||||
serde = { version = "1.0.219", features = ["derive"] }
|
||||
toml = "0.8.22"
|
||||
tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "signal"] }
|
||||
warp = { version = "0.4.2", features = ["server"] }
|
||||
mitemp = "0.5.0"
|
||||
tokio-stream = { version = "0.1.18", features = ["net"] }
|
||||
btleplug = { version = "0.12.0", features = ["serde"] }
|
||||
tracing = "0.1.44"
|
||||
tracing-subscriber = "0.3.23"
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
toml = "1.0.7"
|
||||
secretfile = "0.1.1"
|
||||
clap = { version = "4.5.39", features = ["derive"] }
|
||||
clap = { version = "4.5.61", features = ["derive"] }
|
||||
|
|
|
|||
24
src/main.rs
24
src/main.rs
|
|
@ -1,8 +1,9 @@
|
|||
mod config;
|
||||
|
||||
use crate::config::{Config, ListenConfig};
|
||||
use btleplug::api::{Central, Manager as _};
|
||||
use btleplug::platform::Manager;
|
||||
use tracing::info;
|
||||
use clap::Parser;
|
||||
use main_error::MainError;
|
||||
use mitemp::{listen, BDAddr, Sensor};
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
|
|
@ -10,13 +11,12 @@ use std::fmt::Write;
|
|||
use std::fs::set_permissions;
|
||||
use std::os::unix::fs::PermissionsExt;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use tokio::net::UnixListener;
|
||||
use tokio::signal::ctrl_c;
|
||||
use tokio::{pin, spawn};
|
||||
use tokio_stream::StreamExt;
|
||||
use tracing::info;
|
||||
use warp::Filter;
|
||||
use clap::Parser;
|
||||
use tokio::net::UnixListener;
|
||||
use tokio_stream::wrappers::UnixListenerStream;
|
||||
use crate::config::{Config, ListenConfig};
|
||||
|
||||
type Cache = Arc<Mutex<HashMap<BDAddr, Sensor>>>;
|
||||
|
||||
|
|
@ -75,13 +75,21 @@ async fn main() -> Result<(), MainError> {
|
|||
|
||||
match config.listen {
|
||||
ListenConfig::Ip { address, port } => {
|
||||
warp::serve(metrics).run((address, port)).await;
|
||||
warp::serve(metrics)
|
||||
.bind((address, port))
|
||||
.await
|
||||
.graceful(async { ctrl_c().await.unwrap() })
|
||||
.run()
|
||||
.await;
|
||||
}
|
||||
ListenConfig::Unix { socket: path } => {
|
||||
let listener = UnixListener::bind(&path)?;
|
||||
set_permissions(&path, PermissionsExt::from_mode(0o666))?;
|
||||
let incoming = UnixListenerStream::new(listener);
|
||||
warp::serve(metrics).run_incoming(incoming).await;
|
||||
warp::serve(metrics)
|
||||
.incoming(listener)
|
||||
.graceful(async { ctrl_c().await.unwrap() })
|
||||
.run()
|
||||
.await;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue