aboutsummaryrefslogtreecommitdiffstats
path: root/src/command
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/command/client/sync.rs4
-rw-r--r--src/command/client/sync/status.rs35
2 files changed, 39 insertions, 0 deletions
diff --git a/src/command/client/sync.rs b/src/command/client/sync.rs
index c485e240..419177a5 100644
--- a/src/command/client/sync.rs
+++ b/src/command/client/sync.rs
@@ -6,6 +6,7 @@ use atuin_client::{database::Database, settings::Settings};
mod login;
mod logout;
mod register;
+mod status;
#[derive(Subcommand)]
#[command(infer_subcommands = true)]
@@ -32,6 +33,8 @@ pub enum Cmd {
#[arg(long)]
base64: bool,
},
+
+ Status,
}
impl Cmd {
@@ -41,6 +44,7 @@ impl Cmd {
Self::Login(l) => l.run(&settings).await,
Self::Logout => logout::run(&settings),
Self::Register(r) => r.run(&settings).await,
+ Self::Status => status::run(&settings, db).await,
Self::Key { base64 } => {
use atuin_client::encryption::{encode_key, load_key};
let key = load_key(&settings).wrap_err("could not load encryption key")?;
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(())
+}