1use crate::cli::SyncCommands;
4use anyhow::Result;
5use colored::*;
6
7pub async fn handle(command: SyncCommands) -> Result<()> {
9 match command {
10 SyncCommands::Providers => {
11 crate::sync::handle_sync_providers().await?
13 }
14 SyncCommands::Configure { provider, command } => {
15 crate::sync::handle_sync_configure(&provider, command).await?
17 }
18 SyncCommands::To { provider, encrypted, yes } => {
19 println!("{} Syncing configuration to {}...", "📤".cyan(), provider);
21 if encrypted {
22 println!(" {} Encryption enabled", "🔒".yellow());
23 }
24 crate::sync::handle_sync_to(&provider, encrypted, yes).await?
25 }
26 SyncCommands::From { provider, encrypted, yes } => {
27 println!("{} Syncing configuration from {}...", "📥".cyan(), provider);
29 if encrypted {
30 println!(" {} Decryption enabled", "🔓".yellow());
31 }
32 crate::sync::handle_sync_from(&provider, encrypted, yes).await?
33 }
34 }
35 Ok(())
36}