diff options
Diffstat (limited to 'src/command/client/sync')
| -rw-r--r-- | src/command/client/sync/status.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/command/client/sync/status.rs b/src/command/client/sync/status.rs new file mode 100644 index 00000000..b3e73e8e --- /dev/null +++ b/src/command/client/sync/status.rs @@ -0,0 +1,35 @@ +use atuin_client::{ + api_client, database::Database, encryption::load_encoded_key, settings::Settings, +}; +use colored::Colorize; +use eyre::Result; + +pub async fn run(settings: &Settings, db: &impl Database) -> Result<()> { + let client = api_client::Client::new( + &settings.sync_address, + &settings.session_token, + load_encoded_key(settings)?, + )?; + + let status = client.status().await?; + let last_sync = Settings::last_sync()?; + let local_count = db.history_count().await?; + + println!("{}", "[Local]".green()); + + if settings.auto_sync { + println!("Sync frequency: {}", settings.sync_frequency); + println!("Last sync: {last_sync}"); + } + + println!("History count: {local_count}\n"); + + if settings.auto_sync { + println!("{}", "[Remote]".green()); + println!("Address: {}", settings.sync_address); + println!("Username: {}", status.username); + println!("History count: {}", status.count); + } + + Ok(()) +} |
