Add version to controller

This commit is contained in:
Tobias Reisinger 2026-09-02 01:32:21 +02:00
commit 4a9b193691
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
4 changed files with 30 additions and 3 deletions

21
Cargo.lock generated
View file

@ -779,6 +779,7 @@ dependencies = [
"emgauwa-common", "emgauwa-common",
"futures", "futures",
"futures-channel", "futures-channel",
"git-version",
"log", "log",
"rppal 0.22.1", "rppal 0.22.1",
"rppal-mcp23s17", "rppal-mcp23s17",
@ -997,6 +998,26 @@ version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "git-version"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19"
dependencies = [
"git-version-macro",
]
[[package]]
name = "git-version-macro"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "h2" name = "h2"
version = "0.3.26" version = "0.3.26"

View file

@ -28,3 +28,5 @@ futures-channel = "0.3"
rppal = "0.22" rppal = "0.22"
rppal-pfd = "0.1" rppal-pfd = "0.1"
rppal-mcp23s17 = "0.1" rppal-mcp23s17 = "0.1"
git-version = "0.3"

View file

@ -1,4 +1,5 @@
use actix::Actor; use actix::Actor;
use git_version::git_version;
use emgauwa_common::db; use emgauwa_common::db;
use emgauwa_common::db::{DbController, DbJunctionRelaySchedule, DbRelay, DbSchedule}; use emgauwa_common::db::{DbController, DbJunctionRelaySchedule, DbRelay, DbSchedule};
use emgauwa_common::errors::EmgauwaError; use emgauwa_common::errors::EmgauwaError;
@ -23,12 +24,14 @@ mod ws;
async fn create_this_controller( async fn create_this_controller(
conn: &mut PoolConnection<Sqlite>, conn: &mut PoolConnection<Sqlite>,
settings: &Settings, settings: &Settings,
version: &str,
) -> Result<DbController, EmgauwaError> { ) -> Result<DbController, EmgauwaError> {
DbController::create( DbController::create(
conn, conn,
&EmgauwaUid::default(), &EmgauwaUid::default(),
&settings.name, &settings.name,
settings.relays.len() as i64, settings.relays.len() as i64,
version,
) )
.await .await
.map_err(EmgauwaError::from) .map_err(EmgauwaError::from)
@ -58,6 +61,7 @@ async fn create_this_relay(
#[actix::main] #[actix::main]
async fn main() -> Result<(), std::io::Error> { async fn main() -> Result<(), std::io::Error> {
let settings = settings::init()?; let settings = settings::init()?;
let version = git_version!();
drop_privileges(&settings.permissions)?; drop_privileges(&settings.permissions)?;
@ -73,7 +77,7 @@ async fn main() -> Result<(), std::io::Error> {
.map_err(EmgauwaError::from)? .map_err(EmgauwaError::from)?
.pop() .pop()
{ {
None => futures::executor::block_on(create_this_controller(&mut conn, &settings))?, None => futures::executor::block_on(create_this_controller(&mut conn, &settings, version))?,
Some(c) => c, Some(c) => c,
}; };
@ -89,7 +93,7 @@ async fn main() -> Result<(), std::io::Error> {
} }
let db_controller = db_controller let db_controller = db_controller
.update(&mut conn, &db_controller.name, settings.relays.len() as i64) .update(&mut conn, &db_controller.name, settings.relays.len() as i64, version)
.await .await
.map_err(EmgauwaError::from)?; .map_err(EmgauwaError::from)?;

View file

@ -82,7 +82,7 @@ async fn handle_controller(
DbController::get_by_uid(conn, &controller.c.uid) DbController::get_by_uid(conn, &controller.c.uid)
.await? .await?
.ok_or(DatabaseError::NotFound)? .ok_or(DatabaseError::NotFound)?
.update(conn, controller.c.name.as_str(), this.c.relay_count) .update(conn, controller.c.name.as_str(), this.c.relay_count, &this.c.version)
.await?; .await?;
Ok(()) Ok(())