mirror of
https://github.com/atuinsh/atuin.git
synced 2024-11-29 11:44:44 +01:00
Add atuin status
(#830)
Useful for debugging, checking the state of things, and for if you forget your username!
This commit is contained in:
parent
ca5e58ad01
commit
0d16a113c5
12
Cargo.lock
generated
12
Cargo.lock
generated
@ -80,6 +80,7 @@ dependencies = [
|
||||
"chrono",
|
||||
"clap",
|
||||
"clap_complete",
|
||||
"colored",
|
||||
"crossbeam-channel",
|
||||
"crossterm",
|
||||
"directories",
|
||||
@ -383,6 +384,17 @@ dependencies = [
|
||||
"os_str_bytes",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colored"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"lazy_static",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "config"
|
||||
version = "0.13.2"
|
||||
|
@ -75,6 +75,7 @@ tiny-bip39 = "1"
|
||||
futures-util = "0.3"
|
||||
ratatui = "0.20.1"
|
||||
fuzzy-matcher = "0.3.7"
|
||||
colored = "2.0.0"
|
||||
|
||||
[dependencies.tracing-subscriber]
|
||||
version = "0.3"
|
||||
|
@ -69,6 +69,7 @@ pub struct IndexResponse {
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct StatusResponse {
|
||||
pub count: i64,
|
||||
pub username: String,
|
||||
pub deleted: Vec<String>,
|
||||
}
|
||||
|
||||
|
@ -31,5 +31,9 @@ pub async fn status<DB: Database>(
|
||||
},
|
||||
};
|
||||
|
||||
Ok(Json(StatusResponse { count, deleted }))
|
||||
Ok(Json(StatusResponse {
|
||||
count,
|
||||
deleted,
|
||||
username: user.username,
|
||||
}))
|
||||
}
|
||||
|
@ -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")?;
|
||||
|
35
src/command/client/sync/status.rs
Normal file
35
src/command/client/sync/status.rs
Normal file
@ -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(())
|
||||
}
|
Loading…
Reference in New Issue
Block a user