feat: CLI-Verbesserungen nach detox-Analyse

- --dry-run als primäre Option (--no-changes als deprecated alias)
- --special für Symlinks und Special Files
- Smart Default-Excludes: .git, .svn, node_modules, .cache, __pycache__
  werden automatisch ignoriert (ähnlich wie detox)
- Alle Änderungen rückwärtskompatibel

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-02-10 10:11:59 +01:00
commit dbb3a092a6
2 changed files with 40 additions and 8 deletions

View file

@ -6,7 +6,7 @@ use std::path::PathBuf;
#[clap(about, version, author)]
#[clap(group(
ArgGroup::new("mode")
.args(&["no_changes", "force"])
.args(&["dry_run", "force"])
.multiple(false)
))]
pub struct Cli {
@ -17,9 +17,9 @@ pub struct Cli {
#[clap(short, long)]
pub quiet: bool,
/// Nur anzeigen, aber keine realen Änderungen vornehmen
#[clap(short, long)]
pub no_changes: bool,
/// Nur anzeigen, aber keine realen Änderungen vornehmen (dry-run)
#[clap(short = 'n', long = "dry-run", alias = "no-changes")]
pub dry_run: bool,
/// Existierende Dateien überschreiben
#[clap(short, long)]
@ -36,4 +36,8 @@ pub struct Cli {
/// Erlaubt, auch das Wurzelverzeichnis anzupassen
#[clap(long)]
pub modify_root: bool,
/// Auch symbolische Links und Special Files verarbeiten
#[clap(long)]
pub special: bool,
}