DragonSlayer_14 03fa5c7454
Testing Build, Check & Preview Release / Build, Check & Create Preview Release (push) Skipped
Main Release & Publish / Erkenne relevante Code-Änderungen (push) Successful in 14s
Main Release & Publish / Build, Publish Crate to Gitea Registry & Create Release (push) Skipped
TruffleHog Secret Scan / TruffleHog (push) Successful in 23s
Security Scans / Trivy & OSV-Scanner (push) Successful in 44s
Merge pull request 'Merge testing in main: Workflows aktualisiert' (#10) from testing into main
Reviewed-on: #10
2026-09-13 12:45:23 +00:00
2026-08-26 19:35:50 +02:00
2026-08-26 19:35:50 +02:00
2026-08-26 19:35:50 +02:00
2026-08-26 17:27:22 +00:00
2026-08-26 19:35:50 +02:00

program-ctdra

Eine schlanke, abhängigkeitsfreie Rust-Bibliothek zur einfachen und zuverlässigen Ermittlung des Programmnamens (Dateistamm der aktuellen ausführbaren Datei).


🚀 Übersicht & Features

  • Einfache API:
    • program_name(): Ermittelt den Programmnamen mit sicherem Fallback ("app").
    • program_name_or(fallback): Ermittelt den Programmnamen mit anpassbarem Fallback.
    • try_program_name(): Gibt den Programmnamen als Option<String> zurück.
  • Zero Dependencies: Nutzt ausschließlich die Rust-Standardbibliothek (std::env, std::path).
  • Rust Edition 2024: Moderner Rust-Standard mit optimierten Release-Profil-Einstellungen (debug = "none").
  • Vollständig getestet & dokumentiert: Mit Unit-Tests, Integrationstests und getesteten Rustdoc-Codebeispielen.
  • Automatisierte CI/CD-Workflows (Gitea Actions):
    • Testing-Pipeline (testing-Branch): Baut, testet und erstellt automatisch ein Gitea Pre-Release (v<VERSION>-preview) inklusive .crate-Paket.
    • Main-Release-Pipeline (main-Branch): Baut, testet, paketiert, veröffentlicht in der Gitea Cargo Package Registry und erstellt ein Gitea Release (v<VERSION>).
  • GPL-3.0-or-later Lizenz: Freie Software unter der GNU General Public License v3.0 oder neuer.

📦 Installation & Einbindung

Um program-ctdra aus der Gitea Package Registry in einem Cargo-Projekt zu verwenden:

1. Registry konfigurieren

Füge die Gitea Package Registry zu deiner lokalen ~/.cargo/config.toml oder projektweiten .cargo/config.toml hinzu:

[registries.gitea]
index = "sparse+https://gitea.creative-dragonslayer.de/api/packages/Rust-Crates/cargo/"

2. Abhängigkeit in Cargo.toml deklarieren

[dependencies]
program-ctdra = { version = "1.0.0", registry = "gitea" }

💡 Anwendungsbeispiele

use program_ctdra::{program_name, program_name_or, try_program_name};

fn main() {
    // 1. Standard-Aufruf mit Fallback "app"
    let name = program_name();
    println!("Aktuelles Programm: {name}");

    // 2. Mit benutzerdefiniertem Fallback
    let service_name = program_name_or("mein-dienst");
    println!("Dienst-Name: {service_name}");

    // 3. Optionale Ermittlung ohne Fallback
    match try_program_name() {
        Some(name) => println!("Executable-Name ermittelt: {name}"),
        None => eprintln!("Konnte Programmnamen nicht ermitteln!"),
    }
}

📁 Projektstruktur

.
├── .gitea/
│   └── workflows/
│       ├── main.yaml       # CI/CD: Test, Check, Publish & Release für 'main'
│       └── testing.yaml    # CI/CD: Test, Check & Pre-Release für 'testing'
├── .idea/                  # Vorkonfigurierte JetBrains IDE Einstellungen
├── src/
│   └── lib.rs              # Bibliotheks-Implementierung & Unit-Tests
├── tests/
│   └── integration_test.rs # Integrationstests für die öffentliche API
├── Cargo.lock
├── Cargo.toml              # Crate-Manifest & Metadaten
├── LICENSE                 # GNU General Public License v3.0
├── AGENTS.md               # Richtlinien und Kontext für KI-Agenten
└── README.md               # Projektdokumentation

💻 Lokale Entwicklung & Validierung

Die gängigen Cargo-Befehle zur Entwicklung und Verifizierung:

  • Kompilierung prüfen:

    cargo check --all-targets
    
  • Tests ausführen (Unit-, Integrations- und Doc-Tests):

    cargo test
    
  • Linter & Code-Formatierung:

    cargo clippy --all-targets -- -D warnings
    cargo fmt --check
    
  • Crate lokal paketieren:

    cargo package
    
  • Dokumentation generieren:

    cargo doc --no-deps --open
    

🔄 CI/CD & Branching-Workflow

Branch Trigger Aktionen
testing Push auf testing cargo test
cargo check --all-targets
cargo package
• Erstellt/Aktualisiert Pre-Release v<VERSION>-preview mit .crate-Asset
main Push auf main cargo test
cargo check --all-targets
cargo package
• Veröffentlicht Crate in Gitea Package Registry
• Erstellt/Aktualisiert Release v<VERSION> mit .crate-Asset

Hinweis zur Versionierung: Die Versionsnummer wird automatisch aus Cargo.toml (version = "...") ausgelesen. Vor einem Merge auf main oder testing muss die Version in Cargo.toml entsprechend SemVer angepasst werden.


📄 Lizenz

Dieses Projekt steht unter der GNU General Public License v3.0 or later (GPL-3.0-or-later).

S
Description
No description provided
Readme GPL-3.0
137 KiB
2026-09-12 22:59:25 +00:00
Languages
Python 74.5%
Rust 25.5%