Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a18eb13cbf
|
||
|
|
e9b47d7eb0
|
@@ -1,9 +0,0 @@
|
|||||||
[registry]
|
|
||||||
default = "gitea"
|
|
||||||
|
|
||||||
[registries.gitea]
|
|
||||||
index = "sparse+https://gitea.creative-dragonslayer.de/api/packages/Rust-Crates/cargo/" # Sparse index
|
|
||||||
# index = "https://gitea.creative-dragonslayer.de/Rust-Crates/_cargo-index.git" # Git
|
|
||||||
|
|
||||||
[net]
|
|
||||||
git-fetch-with-cli = true
|
|
||||||
Generated
+2
-11
@@ -10,11 +10,11 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "config-ctdra"
|
name = "config-ctdra"
|
||||||
version = "1.0.3"
|
version = "1.0.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"confy",
|
"confy",
|
||||||
|
"libc",
|
||||||
"serde",
|
"serde",
|
||||||
"sudo-ctdra",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -141,15 +141,6 @@ dependencies = [
|
|||||||
"serde_core",
|
"serde_core",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sudo-ctdra"
|
|
||||||
version = "1.0.0"
|
|
||||||
source = "sparse+https://gitea.creative-dragonslayer.de/api/packages/Rust-Crates/cargo/"
|
|
||||||
checksum = "2c2746122bbe36f821de70db3ca4ad24edfb77118fc6a6bc7693082b50d23e5f"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "3.0.4"
|
version = "3.0.4"
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "config-ctdra"
|
name = "config-ctdra"
|
||||||
version = "1.0.3"
|
version = "1.0.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
authors = ['DragonSlayer_14']
|
authors = ['DragonSlayer_14']
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@@ -11,7 +11,7 @@ description = "Einfache, threadsichere Konfigurationsverwaltung für Rust mit au
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
confy = "2.0.0"
|
confy = "2.0.0"
|
||||||
serde = { version = "1.0.229", features = ["derive"] }
|
serde = { version = "1.0.229", features = ["derive"] }
|
||||||
sudo-ctdra = { version = "1.0.0", registry = "gitea" }
|
libc = "1.0.0-alpha.4"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
debug = "none"
|
debug = "none"
|
||||||
|
|||||||
@@ -208,8 +208,8 @@ If you develop a new program, and you want it to be of the greatest possible use
|
|||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
|
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
config
|
DockerUpdater
|
||||||
Copyright (C) 2026 Rust-Crates
|
Copyright (C) 2026 Linuxapps
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
|
|
||||||
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
|
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
config Copyright (C) 2026 Rust-Crates
|
DockerUpdater Copyright (C) 2026 Linuxapps
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
|
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
|||||||
+22
-1
@@ -36,7 +36,6 @@ use std::sync::{OnceLock, RwLock};
|
|||||||
pub use confy::ConfyError;
|
pub use confy::ConfyError;
|
||||||
use serde::de::DeserializeOwned;
|
use serde::de::DeserializeOwned;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use sudo_ctdra::is_run_as_root;
|
|
||||||
|
|
||||||
/// Optionaler benutzerdefinierter Programmname für die Konfigurationspfade.
|
/// Optionaler benutzerdefinierter Programmname für die Konfigurationspfade.
|
||||||
static PROGRAM_NAME: OnceLock<RwLock<Option<String>>> = OnceLock::new();
|
static PROGRAM_NAME: OnceLock<RwLock<Option<String>>> = OnceLock::new();
|
||||||
@@ -57,6 +56,28 @@ static GLOBAL_CONFIGS: OnceLock<RwLock<HashMap<TypeId, &'static (dyn Any + Send
|
|||||||
/// Standardname für Konfigurationsdateien.
|
/// Standardname für Konfigurationsdateien.
|
||||||
const DEFAULT_CONFIG_NAME: &str = "config";
|
const DEFAULT_CONFIG_NAME: &str = "config";
|
||||||
|
|
||||||
|
/// Prüft, ob das Programm mit Root-/Administrator-Rechten ausgeführt wird.
|
||||||
|
///
|
||||||
|
/// # Returns
|
||||||
|
///
|
||||||
|
/// * `true` - Das Programm läuft mit erhöhten Rechten (z. B. UID 0 unter Linux/Unix)
|
||||||
|
/// * `false` - Das Programm läuft mit normalen Benutzerrechten
|
||||||
|
pub fn is_run_as_root() -> bool {
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
{
|
||||||
|
std::process::Command::new("net")
|
||||||
|
.args(["session"])
|
||||||
|
.output()
|
||||||
|
.map(|output| output.status.success())
|
||||||
|
.unwrap_or(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(target_os = "windows"))]
|
||||||
|
{
|
||||||
|
unsafe { libc::geteuid() == 0 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Setzt den Programmnamen für die Pfadermittlung explizit.
|
/// Setzt den Programmnamen für die Pfadermittlung explizit.
|
||||||
pub fn set_program_name(name: impl Into<String>) {
|
pub fn set_program_name(name: impl Into<String>) {
|
||||||
let lock = PROGRAM_NAME.get_or_init(|| RwLock::new(None));
|
let lock = PROGRAM_NAME.get_or_init(|| RwLock::new(None));
|
||||||
|
|||||||
Reference in New Issue
Block a user