From 7a95a402408ac251de4eff735e333f09d503609d Mon Sep 17 00:00:00 2001 From: Jacob Morgan Date: Thu, 21 Mar 2024 22:00:59 +0100 Subject: [PATCH] way too big image but it works --- rust/Dockerfile | 4 ++-- rust/src/config.rs | 18 +++++++----------- rust/src/services/workloads.rs | 8 +++++--- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/rust/Dockerfile b/rust/Dockerfile index 68f5f65..ba28714 100644 --- a/rust/Dockerfile +++ b/rust/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /usr/src/slackwatch COPY . . RUN cargo install --path . -FROM debian:bookworm-slim -RUN apt-get update && rm -rf /var/lib/apt/lists/* +FROM rust:1.76 +#RUN apt-get update && rm -rf /var/lib/apt/lists/* COPY --from=builder /usr/local/cargo/bin/slackwatch /usr/local/bin/slackwatch CMD ["slackwatch"] diff --git a/rust/src/config.rs b/rust/src/config.rs index 25daeb8..2c71ecb 100644 --- a/rust/src/config.rs +++ b/rust/src/config.rs @@ -1,9 +1,6 @@ use config::{Config, ConfigError, Environment, File}; use serde_derive::Deserialize; - - - #[derive(Debug, Deserialize)] #[allow(unused)] pub struct Settings { @@ -23,20 +20,19 @@ pub struct Ntfy { pub url: String, pub topic: String, pub reminder: String, - pub token : String + pub token: String, } - impl Settings { pub fn new() -> Result { dotenv::dotenv().ok(); - let s = Config::builder() - .add_source(File::with_name("config/default").required(false)) - .add_source(File::with_name(".env.toml").required(false)) - .add_source(Environment::with_prefix("slackwatch")) - .build()?; + let s = Config::builder() + .add_source(File::with_name("config/default").required(false)) + .add_source(File::with_name(".env.toml").required(false)) + .add_source(Environment::with_prefix("slackwatch")) + .build()?; //print config println!("{:?}", s); s.try_deserialize() -} + } } diff --git a/rust/src/services/workloads.rs b/rust/src/services/workloads.rs index d61a60e..eb7bb95 100644 --- a/rust/src/services/workloads.rs +++ b/rust/src/services/workloads.rs @@ -2,10 +2,10 @@ use crate::database; use crate::database::client::get_latest_scan_id; use crate::kubernetes::client::find_enabled_workloads; use crate::models::models::{UpdateStatus, Workload}; +use crate::notifications::ntfy::send_notification; use crate::repocheck::repocheck::get_tags_for_image; use regex::Regex; use semver::Version; -use crate::notifications::ntfy::send_notification; pub async fn fetch_and_update_all_watched() -> Result<(), String> { let workloads = find_enabled_workloads().await.map_err(|e| e.to_string())?; @@ -19,9 +19,11 @@ pub async fn fetch_and_update_all_watched() -> Result<(), String> { .map_err(|e| e.to_string())?; let workload = parse_tags(&workload).await.map_err(|e| e.to_string())?; if workload.update_available.to_string() == "Available" { - send_notification(&workload).await.unwrap_or_else(|e| log::error!("Error sending notification: {}", e)); + send_notification(&workload) + .await + .unwrap_or_else(|e| log::error!("Error sending notification: {}", e)); } - + std::thread::spawn(move || database::client::insert_workload(&workload, scan_id)) .join() .map_err(|_| "Thread error".to_string())?