Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/target
*/target
.env

# JetBrains IDEs
.idea/
4 changes: 4 additions & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
reorder_imports = true
# uncomment once stable
#imports_granularity = "crate"
#group_imports = "StdExternalCrate"
14 changes: 9 additions & 5 deletions atuin-client/src/api_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@ use std::collections::HashMap;

use chrono::Utc;
use eyre::{bail, Result};
use reqwest::header::{HeaderMap, AUTHORIZATION, USER_AGENT};
use reqwest::{StatusCode, Url};
use reqwest::{
header::{HeaderMap, AUTHORIZATION, USER_AGENT},
StatusCode, Url,
};
use sodiumoxide::crypto::secretbox;

use atuin_common::api::{
AddHistoryRequest, CountResponse, LoginRequest, LoginResponse, RegisterResponse,
SyncHistoryResponse,
};

use crate::encryption::{decode_key, decrypt};
use crate::history::History;
use crate::sync::hash_str;
use crate::{
encryption::{decode_key, decrypt},
history::History,
sync::hash_str,
};

static APP_USER_AGENT: &str = concat!("atuin/", env!("CARGO_PKG_VERSION"),);

Expand Down
15 changes: 7 additions & 8 deletions atuin-client/src/database.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
use std::env;
use std::path::Path;
use std::str::FromStr;
use std::{env, path::Path, str::FromStr};

use async_trait::async_trait;
use chrono::prelude::*;
use chrono::Utc;
use chrono::{prelude::*, Utc};
use fs_err as fs;
use itertools::Itertools;
use lazy_static::lazy_static;
Expand All @@ -15,9 +12,11 @@ use sqlx::{
Result, Row,
};

use super::history::History;
use super::ordering;
use super::settings::{FilterMode, SearchMode};
use super::{
history::History,
ordering,
settings::{FilterMode, SearchMode},
};

pub struct Context {
session: String,
Expand Down
10 changes: 4 additions & 6 deletions atuin-client/src/encryption.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,14 @@
// clients must share the secret in order to be able to sync, as it is needed
// to decrypt

use fs_err as fs;
use serde::{Deserialize, Serialize};
use std::io::prelude::*;
use std::path::PathBuf;
use std::{io::prelude::*, path::PathBuf};

use eyre::{eyre, Context, Result};
use fs_err as fs;
use serde::{Deserialize, Serialize};
use sodiumoxide::crypto::secretbox;

use crate::history::History;
use crate::settings::Settings;
use crate::{history::History, settings::Settings};

#[derive(Debug, Serialize, Deserialize)]
pub struct EncryptedHistory {
Expand Down
2 changes: 1 addition & 1 deletion atuin-client/src/history.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use std::env;

use chrono::Utc;
use serde::{Deserialize, Serialize};

use atuin_common::utils::uuid_v4;
use serde::{Deserialize, Serialize};

// Any new fields MUST be Optional<>!
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, sqlx::FromRow)]
Expand Down
3 changes: 1 addition & 2 deletions atuin-client/src/import/fish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ use std::{
path::{Path, PathBuf},
};

use chrono::prelude::*;
use chrono::Utc;
use chrono::{prelude::*, Utc};
use directories::BaseDirs;
use eyre::{eyre, Result};

Expand Down
6 changes: 4 additions & 2 deletions atuin-client/src/import/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
use std::io::{BufRead, BufReader, Read, Seek, SeekFrom};
use std::path::{Path, PathBuf};
use std::{
io::{BufRead, BufReader, Read, Seek, SeekFrom},
path::{Path, PathBuf},
};

use eyre::Result;

Expand Down
3 changes: 2 additions & 1 deletion atuin-client/src/import/resh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ use std::{
path::{Path, PathBuf},
};

use atuin_common::utils::uuid_v4;
use chrono::{TimeZone, Utc};
use directories::UserDirs;
use eyre::{eyre, Result};
use serde::Deserialize;

use atuin_common::utils::uuid_v4;

use super::{count_lines, Importer};
use crate::history::History;

Expand Down
3 changes: 1 addition & 2 deletions atuin-client/src/import/zsh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ use std::{
path::{Path, PathBuf},
};

use chrono::prelude::*;
use chrono::Utc;
use chrono::{prelude::*, Utc};
use directories::UserDirs;
use eyre::{eyre, Result};
use itertools::Itertools;
Expand Down
4 changes: 2 additions & 2 deletions atuin-client/src/ordering.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use super::history::History;
use super::settings::SearchMode;
use minspan::minspan;

use super::{history::History, settings::SearchMode};

pub fn reorder_fuzzy(mode: SearchMode, query: &str, res: Vec<History>) -> Vec<History> {
match mode {
SearchMode::Fuzzy => reorder(query, |x| &x.command, res),
Expand Down
13 changes: 7 additions & 6 deletions atuin-client/src/settings.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
use fs_err::{create_dir_all, File};
use serde::Deserialize;
use std::io::prelude::*;
use std::path::{Path, PathBuf};
use std::{
io::prelude::*,
path::{Path, PathBuf},
};

use chrono::prelude::*;
use chrono::Utc;
use chrono::{prelude::*, Utc};
use config::{Config, Environment, File as ConfigFile, FileFormat};
use eyre::{eyre, Context, Result};
use fs_err::{create_dir_all, File};
use parse_duration::parse;
use serde::Deserialize;

pub const HISTORY_PAGE_SIZE: i64 = 100;

Expand Down
10 changes: 6 additions & 4 deletions atuin-client/src/sync.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ use eyre::Result;

use atuin_common::api::AddHistoryRequest;

use crate::api_client;
use crate::database::Database;
use crate::encryption::{encrypt, load_encoded_key, load_key};
use crate::settings::{Settings, HISTORY_PAGE_SIZE};
use crate::{
api_client,
database::Database,
encryption::{encrypt, load_encoded_key, load_key},
settings::{Settings, HISTORY_PAGE_SIZE},
};

pub fn hash_str(string: &str) -> String {
use sha2::{Digest, Sha256};
Expand Down
16 changes: 8 additions & 8 deletions atuin-server/src/database.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
use async_trait::async_trait;
use std::collections::HashMap;
use tracing::{debug, instrument};

use async_trait::async_trait;
use chrono::{Datelike, TimeZone};
use chronoutil::RelativeDuration;
use sqlx::{postgres::PgPoolOptions, Result};
use tracing::{debug, instrument};

use super::{
calendar::{TimePeriod, TimePeriodInfo},
models::{History, NewHistory, NewSession, NewUser, Session, User},
};
use crate::settings::HISTORY_PAGE_SIZE;

use super::calendar::{TimePeriod, TimePeriodInfo};
use super::models::{History, NewHistory, NewSession, NewUser, Session, User};

use chrono::{Datelike, TimeZone};
use chronoutil::RelativeDuration;

use atuin_common::utils::get_days_from_month;

#[async_trait]
Expand Down
22 changes: 13 additions & 9 deletions atuin-server/src/handlers/history.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
use axum::extract::Query;
use axum::{extract::Path, Extension, Json};
use http::StatusCode;
use std::collections::HashMap;
use tracing::{debug, error, instrument};

use crate::database::{Database, Postgres};
use crate::models::{NewHistory, User};
use atuin_common::api::*;

use crate::calendar::{TimePeriod, TimePeriodInfo};
use axum::{
extract::{Path, Query},
Extension, Json,
};
use http::StatusCode;
use tracing::{debug, error, instrument};

use super::{ErrorResponse, ErrorResponseStatus};
use crate::{
calendar::{TimePeriod, TimePeriodInfo},
database::{Database, Postgres},
models::{NewHistory, User},
};

use atuin_common::api::*;

#[instrument(skip_all, fields(user.id = user.id))]
pub async fn count(
Expand Down
3 changes: 2 additions & 1 deletion atuin-server/src/handlers/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::borrow::Cow;

use axum::{response::IntoResponse, Json};
use serde::{Deserialize, Serialize};
use std::borrow::Cow;

pub mod history;
pub mod user;
Expand Down
15 changes: 8 additions & 7 deletions atuin-server/src/handlers/user.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
use std::borrow::Borrow;

use atuin_common::api::*;
use axum::extract::Path;
use axum::{Extension, Json};
use axum::{extract::Path, Extension, Json};
use http::StatusCode;
use sodiumoxide::crypto::pwhash::argon2id13;
use tracing::{debug, error, instrument};
use uuid::Uuid;

use crate::database::{Database, Postgres};
use crate::models::{NewSession, NewUser};
use crate::settings::Settings;

use super::{ErrorResponse, ErrorResponseStatus};
use crate::{
database::{Database, Postgres},
models::{NewSession, NewUser},
settings::Settings,
};

use atuin_common::api::*;

pub fn verify_str(secret: &str, verify: &str) -> bool {
sodiumoxide::init().unwrap();
Expand Down
7 changes: 3 additions & 4 deletions atuin-server/src/settings.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
use fs_err::{create_dir_all, File};
use serde::{Deserialize, Serialize};
use std::io::prelude::*;
use std::path::PathBuf;
use std::{io::prelude::*, path::PathBuf};

use config::{Config, Environment, File as ConfigFile, FileFormat};
use eyre::{eyre, Result};
use fs_err::{create_dir_all, File};
use serde::{Deserialize, Serialize};

pub const HISTORY_PAGE_SIZE: i64 = 100;

Expand Down
13 changes: 5 additions & 8 deletions src/command/client.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
use clap::CommandFactory;
use clap::Subcommand;
use clap_complete::Shell;
use clap_complete::{generate, generate_to};
use std::path::PathBuf;

use clap::{CommandFactory, Subcommand};
use clap_complete::{generate, generate_to, Shell};
use eyre::{Result, WrapErr};

use atuin_client::database::Sqlite;
use atuin_client::settings::Settings;
use atuin_client::{database::Sqlite, settings::Settings};
use atuin_common::utils::uuid_v4;

#[cfg(feature = "sync")]
Expand All @@ -18,8 +17,6 @@ mod init;
mod search;
mod stats;

use std::path::PathBuf;

#[derive(Subcommand)]
#[clap(infer_subcommands = true)]
pub enum Cmd {
Expand Down
6 changes: 2 additions & 4 deletions src/command/client/event.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
use std::thread;
use std::time::Duration;
use std::{thread, time::Duration};

use crossbeam_channel::unbounded;
use termion::event::Key;
use termion::input::TermRead;
use termion::{event::Key, input::TermRead};

pub enum Event<I> {
Input(I),
Expand Down
16 changes: 10 additions & 6 deletions src/command/client/history.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
use std::env;
use std::io::{StdoutLock, Write};
use std::time::Duration;
use std::{
env,
io::{StdoutLock, Write},
time::Duration,
};

use clap::Subcommand;
use eyre::Result;

use atuin_client::database::{current_context, Database};
use atuin_client::history::History;
use atuin_client::settings::Settings;
use atuin_client::{
database::{current_context, Database},
history::History,
settings::Settings,
};

#[cfg(feature = "sync")]
use atuin_client::sync;
Expand Down
11 changes: 6 additions & 5 deletions src/command/client/import.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
use std::{env, path::PathBuf};

use atuin_client::import::fish::Fish;
use clap::Parser;
use eyre::{eyre, Result};

use atuin_client::import::{bash::Bash, zsh::Zsh};
use atuin_client::{database::Database, import::Importer};
use atuin_client::{history::History, import::resh::Resh};
use indicatif::ProgressBar;

use atuin_client::{
database::Database,
history::History,
import::{bash::Bash, fish::Fish, resh::Resh, zsh::Zsh, Importer},
};

#[derive(Parser)]
#[clap(infer_subcommands = true)]
pub enum Cmd {
Expand Down
Loading