Ref: Lagert program_name() aus.

This commit is contained in:
2025-08-20 15:21:12 +02:00
parent 020e964b13
commit ba9f01b3cb
2 changed files with 16 additions and 14 deletions

View File

@@ -27,6 +27,7 @@ use std::io::{stdout, IsTerminal, Write};
use std::sync::{Mutex, OnceLock}; use std::sync::{Mutex, OnceLock};
use time::{macros::format_description, OffsetDateTime}; use time::{macros::format_description, OffsetDateTime};
use crate::program;
/// Schweregrade für Logeinträge in aufsteigender Detailtiefe. /// Schweregrade für Logeinträge in aufsteigender Detailtiefe.
/// ///
@@ -188,7 +189,7 @@ fn get_or_init_log_file() -> &'static Mutex<Option<File>> {
/// Fehler: /// Fehler:
/// - Gibt I/O-Fehler unverändert weiter (z. B. beim Erstellen des Ordners oder Öffnen der Datei). /// - Gibt I/O-Fehler unverändert weiter (z. B. beim Erstellen des Ordners oder Öffnen der Datei).
fn open_log_file() -> std::io::Result<File> { fn open_log_file() -> std::io::Result<File> {
let program = program_name(); let program = program::program_name();
let rand = "13692bbf-a93b-43e9-9cc6-f05f94a8cfb6"; let rand = "13692bbf-a93b-43e9-9cc6-f05f94a8cfb6";
let mut dir = env::temp_dir(); let mut dir = env::temp_dir();
@@ -209,16 +210,3 @@ fn open_log_file() -> std::io::Result<File> {
.append(true) .append(true)
.open(dir) .open(dir)
} }
/// Liefert den Programmnamen (Dateistamm der aktuellen ausführbaren Datei).
///
/// Rückgabe:
/// - Dateistamm der aktuellen Executable als `String`.
/// - Fallback `"app"`, wenn der Name nicht ermittelt werden kann.
fn program_name() -> String {
env::current_exe()
.ok()
.and_then(|p| p.file_stem().map(|s| s.to_string_lossy().to_string()))
.filter(|s| !s.is_empty())
.unwrap_or_else(|| "app".to_string())
}

14
src/program.rs Normal file
View File

@@ -0,0 +1,14 @@
use std::env;
/// Liefert den Programmnamen (Dateistamm der aktuellen ausführbaren Datei).
///
/// Rückgabe:
/// - Dateistamm der aktuellen Executable als `String`.
/// - Fallback `"app"`, wenn der Name nicht ermittelt werden kann.
pub(crate) fn program_name() -> String {
env::current_exe()
.ok()
.and_then(|p| p.file_stem().map(|s| s.to_string_lossy().to_string()))
.filter(|s| !s.is_empty())
.unwrap_or_else(|| "app".to_string())
}