Skip to content

Repository files navigation

DynamicFileBinder

DynamicFileBinder ist ein C++17-Tool zum sicheren Verwalten von Dateibindungen (physische Kopie oder symbolische Verknuepfung) inklusive Governance-Regeln, Error-Stack, CLI/GUI und Daemon-Betrieb.

Highlights

  • Sichere Bind-Operationen mit Staging, Integritaetspruefung und Rollback
  • Governance-Engine fuer BindPhysical/BindSymbolic/Defer/Reject
  • Zentraler Error-Stack mit Domain/Severity/Error-Codes
  • GUI mit wxWidgets (verpflichtend) und CLI/Daemon-Kommandos
  • CTest-Suite mit Integrations- und Fehler-Matrix-Tests

Projektstatus

  • Version: 0.1.x (aktive Entwicklung)
  • Build-System: CMake + vcpkg Manifest
  • GUI: wxWidgets

Voraussetzungen

  • CMake >= 3.20
  • Visual Studio 2026 Build Tools oder Visual Studio 2026
  • Git mit Submodule-Unterstuetzung

Schnellstart (Windows)

1. Repository klonen

git clone --recurse-submodules https://github.com/makr-code/DynamicFileBinder.git
cd DynamicFileBinder

Wenn bereits geklont:

git submodule update --init --recursive

2. vcpkg bootstrappen

.\vcpkg\bootstrap-vcpkg.bat

3. Konfigurieren, bauen, testen

cmake --preset vs-debug-vcpkg
cmake --build --preset build-debug
ctest --preset test-debug

Hinweis: wxWidgets ist Pflichtabhaengigkeit. Wenn vcpkg oder das Manifest nicht verfuegbar ist, stoppt die Konfiguration bewusst.

GitHub Workflows / CI

Fuer GitHub Actions keine festen Build-Pfade oder IDE-spezifischen Generatoren verwenden. Dieses Repo nutzt dafuer dedizierte CI-Presets:

cmake --preset ci-windows
cmake --build --preset build-ci-debug
ctest --preset test-ci-debug

Die Presets sind relativ zum Workspace aufgebaut und damit in lokalen Runs und Workflows konsistent nutzbar. Der Workflow ist in zwei Jobs geteilt:

  • smoke-windows: schnelle Kernregression (CTest-Label smoke)
  • edge-windows: Tiefen-/Mengen-Checks plus Edge-Tests (CTest-Label edge)

Zusatzworkflow:

  • cmake-multi-platform: manueller Matrix-Check (Windows/Linux/macOS) per workflow_dispatch

Nutzung

GUI starten

.\bin\Debug\dynamic_file_binder.exe --ui

CLI (Beispiele)

dynamic_file_binder <source> [link] [symlink|hardlink|physical]
dynamic_file_binder --revert
dynamic_file_binder --cleanup
dynamic_file_binder --daemon-status

Tests

Die Testabdeckung umfasst u. a.:

  • Error- und Governance-Entscheidungen
  • Datenbank-Roundtrip inkl. Versionsmismatch
  • CRUD- und Copy/Link-Flows
  • Zwei-Ordner-Sync-Lifecycle
  • State-Storm mit absichtlich fehlerhaften Sequenzen
  • Multi-Folder-Soak-Test (folder A/B/C) fuer Langzeitstabilitaet

Direktlauf:

ctest --test-dir build -C Debug --output-on-failure

Soak-Test gezielt starten:

ctest --test-dir build -C Debug -R core.longrun --output-on-failure

Label-basierte Teilmengen:

ctest --test-dir build -C Debug -L smoke --output-on-failure
ctest --test-dir build -C Debug -L edge --output-on-failure

Manueller 10-Minuten-Langlauf:

ctest --test-dir build -C Debug -R soak.longrun_10min --output-on-failure

Stress-Datensaetze fuer Mengen-/Tiefen-Edge-Tests erzeugen:

pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile quick -Clean
pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile medium -Clean
pwsh ./tests/stress/generate_stress_dataset.ps1 -Profile edge-depth -Clean

Verfuegbare Profile:

  • quick: kurzer lokaler Lauf
  • medium: regelmaessiger CI/Regression-Lauf
  • heavy: Langzeit-Soak mit hoher Last
  • edge-depth: Fokus auf tiefe Pfade nahe OS-Grenzen
  • edge-count: Fokus auf sehr viele Dateien

Hinweis: Generierte Daten liegen unter tests/stress_generated/ und sind in .gitignore ausgeschlossen.

Dokumentation

Governance und Sicherheit

Dieses Projekt priorisiert Datenkonsistenz. Bei Integritaets- oder Versionskonflikten wird ein Merge/Overwrite nicht stillschweigend ausgefuehrt, sondern explizit mit Fehlercode abgebrochen.

Lizenz

Siehe LICENSE.

About

DynamicFileBinder ist ein C++17-Tool zum sicheren Verwalten von Dateibindungen (physische Kopie oder symbolische Verknuepfung) inklusive Governance-Regeln, Error-Stack, CLI/GUI und Daemon-Betrieb.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages