use sync_auth::providers;
use sync_auth::{SyncConfig, SyncEngine};
#[tokio::main]
async fn main() {
println!("Available auth providers:");
for provider in providers::all_providers() {
println!(" {:<15} {}", provider.name(), provider.display_name());
for cred in provider.credential_files() {
let exists = if cred.local_path.exists() {
"exists"
} else {
"not found"
};
println!(
" {} -> {} ({})",
cred.relative_path,
cred.local_path.display(),
exists
);
}
}
println!();
let config = SyncConfig {
repo_url: "https://github.com/YOUR_USER/YOUR_CREDENTIALS_REPO.git".to_string(),
providers: vec!["gh".to_string(), "claude".to_string()],
..Default::default()
};
println!("Config:");
println!(" repo: {}", config.repo_url);
println!(" path: {}", config.local_path.display());
println!(" branch: {}", config.branch);
println!(" shallow: {}", config.shallow_clone);
match SyncEngine::new(config) {
Ok(engine) => {
println!(
"\nEngine created with {} provider(s).",
engine.providers.len()
);
}
Err(e) => {
eprintln!("Failed to create engine: {e}");
}
}
}