diff options
| author | Ellie Huxtable <ellie@atuin.sh> | 2025-03-19 12:44:20 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-19 12:44:20 +0000 |
| commit | 14ec768b4520d4fc34dbf24e663ea7db940c18b7 (patch) | |
| tree | a37db707ab8676cad5b3e6ca47af3f2997958906 /crates/atuin-client/src/import | |
| parent | feat: Use readline binding for ctrl-a when it is not the prefix (#2626) (diff) | |
| download | atuin-14ec768b4520d4fc34dbf24e663ea7db940c18b7.zip | |
chore: migrate to rust 2024 (#2635)
* chore: upgrade to 2024 edition
* ugh unsafe
* format
* nixxxxxxxxxxx why
Diffstat (limited to 'crates/atuin-client/src/import')
| -rw-r--r-- | crates/atuin-client/src/import/bash.rs | 12 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/fish.rs | 8 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/mod.rs | 2 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/nu.rs | 4 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/nu_histdb.rs | 4 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/replxx.rs | 15 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/resh.rs | 4 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/xonsh.rs | 6 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/xonsh_sqlite.rs | 8 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/zsh.rs | 6 | ||||
| -rw-r--r-- | crates/atuin-client/src/import/zsh_histdb.rs | 8 |
11 files changed, 42 insertions, 35 deletions
diff --git a/crates/atuin-client/src/import/bash.rs b/crates/atuin-client/src/import/bash.rs index ade1f751..93d1fcf5 100644 --- a/crates/atuin-client/src/import/bash.rs +++ b/crates/atuin-client/src/import/bash.rs @@ -2,11 +2,11 @@ use std::{path::PathBuf, str}; use async_trait::async_trait; use directories::UserDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use itertools::Itertools; use time::{Duration, OffsetDateTime}; -use super::{get_histpath, unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, get_histpath, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; @@ -73,7 +73,9 @@ impl Importer for Bash { LineType::Empty => {} // do nothing LineType::Timestamp(t) => { if t < next_timestamp { - warn!("Time reversal detected in Bash history! Commands may be ordered incorrectly."); + warn!( + "Time reversal detected in Bash history! Commands may be ordered incorrectly." + ); } next_timestamp = t; } @@ -126,9 +128,9 @@ fn try_parse_line_as_timestamp(line: &str) -> Option<OffsetDateTime> { mod test { use std::cmp::Ordering; - use itertools::{assert_equal, Itertools}; + use itertools::{Itertools, assert_equal}; - use crate::import::{tests::TestLoader, Importer}; + use crate::import::{Importer, tests::TestLoader}; use super::Bash; diff --git a/crates/atuin-client/src/import/fish.rs b/crates/atuin-client/src/import/fish.rs index 714b2d01..9fcf624c 100644 --- a/crates/atuin-client/src/import/fish.rs +++ b/crates/atuin-client/src/import/fish.rs @@ -5,10 +5,10 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::BaseDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use time::OffsetDateTime; -use super::{unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; @@ -110,7 +110,7 @@ impl Importer for Fish { #[cfg(test)] mod test { - use crate::import::{tests::TestLoader, Importer}; + use crate::import::{Importer, tests::TestLoader}; use super::Fish; @@ -160,7 +160,7 @@ ERROR // simple wrapper for fish history entry macro_rules! fishtory { - ($timestamp:expr, $command:expr) => { + ($timestamp:expr_2021, $command:expr_2021) => { let h = history.next().expect("missing entry in history"); assert_eq!(h.command.as_str(), $command); assert_eq!(h.timestamp.unix_timestamp(), $timestamp); diff --git a/crates/atuin-client/src/import/mod.rs b/crates/atuin-client/src/import/mod.rs index eb3ce045..1d4f29f3 100644 --- a/crates/atuin-client/src/import/mod.rs +++ b/crates/atuin-client/src/import/mod.rs @@ -3,7 +3,7 @@ use std::io::Read; use std::path::PathBuf; use async_trait::async_trait; -use eyre::{bail, Result}; +use eyre::{Result, bail}; use memchr::Memchr; use crate::history::History; diff --git a/crates/atuin-client/src/import/nu.rs b/crates/atuin-client/src/import/nu.rs index a45d83c5..cae90ac4 100644 --- a/crates/atuin-client/src/import/nu.rs +++ b/crates/atuin-client/src/import/nu.rs @@ -5,10 +5,10 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::BaseDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use time::OffsetDateTime; -use super::{unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; diff --git a/crates/atuin-client/src/import/nu_histdb.rs b/crates/atuin-client/src/import/nu_histdb.rs index f0e8e95c..a13cb2b4 100644 --- a/crates/atuin-client/src/import/nu_histdb.rs +++ b/crates/atuin-client/src/import/nu_histdb.rs @@ -5,8 +5,8 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::BaseDirs; -use eyre::{eyre, Result}; -use sqlx::{sqlite::SqlitePool, Pool}; +use eyre::{Result, eyre}; +use sqlx::{Pool, sqlite::SqlitePool}; use time::{Duration, OffsetDateTime}; use super::Importer; diff --git a/crates/atuin-client/src/import/replxx.rs b/crates/atuin-client/src/import/replxx.rs index b73522ce..e1590c69 100644 --- a/crates/atuin-client/src/import/replxx.rs +++ b/crates/atuin-client/src/import/replxx.rs @@ -2,10 +2,10 @@ use std::{path::PathBuf, str}; use async_trait::async_trait; use directories::UserDirs; -use eyre::{eyre, Result}; -use time::{macros::format_description, OffsetDateTime, PrimitiveDateTime}; +use eyre::{Result, eyre}; +use time::{OffsetDateTime, PrimitiveDateTime, macros::format_description}; -use super::{get_histpath, unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, get_histpath, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; @@ -72,7 +72,7 @@ fn try_parse_line_as_timestamp(line: &str) -> Option<OffsetDateTime> { #[cfg(test)] mod test { - use crate::import::{tests::TestLoader, Importer}; + use crate::import::{Importer, tests::TestLoader}; use super::Replxx; @@ -100,7 +100,7 @@ CREATE TABLE test( stamp DateTime('UTC'))ENGINE = MergeTreePARTITION BY toDat // simple wrapper for replxx history entry macro_rules! history { - ($timestamp:expr, $command:expr) => { + ($timestamp:expr_2021, $command:expr_2021) => { let h = history.next().expect("missing entry in history"); assert_eq!(h.command.as_str(), $command); assert_eq!(h.timestamp.unix_timestamp(), $timestamp); @@ -114,6 +114,9 @@ CREATE TABLE test( stamp DateTime('UTC'))ENGINE = MergeTreePARTITION BY toDat history!(1707603396, "select * from numbers(10)"); history!(1707603401, "select * from system.numbers"); history!(1707603568, "select 1"); - history!(1708600533, "CREATE TABLE test\n( stamp DateTime('UTC'))\nENGINE = MergeTree\nPARTITION BY toDate(stamp)\norder by tuple() as select toDateTime('2020-01-01')+number*60 from numbers(80000);"); + history!( + 1708600533, + "CREATE TABLE test\n( stamp DateTime('UTC'))\nENGINE = MergeTree\nPARTITION BY toDate(stamp)\norder by tuple() as select toDateTime('2020-01-01')+number*60 from numbers(80000);" + ); } } diff --git a/crates/atuin-client/src/import/resh.rs b/crates/atuin-client/src/import/resh.rs index 396d11fd..1be23396 100644 --- a/crates/atuin-client/src/import/resh.rs +++ b/crates/atuin-client/src/import/resh.rs @@ -2,13 +2,13 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::UserDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use serde::Deserialize; use atuin_common::utils::uuid_v7; use time::OffsetDateTime; -use super::{get_histpath, unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, get_histpath, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; diff --git a/crates/atuin-client/src/import/xonsh.rs b/crates/atuin-client/src/import/xonsh.rs index 19ce4cf6..d041c648 100644 --- a/crates/atuin-client/src/import/xonsh.rs +++ b/crates/atuin-client/src/import/xonsh.rs @@ -4,13 +4,13 @@ use std::path::{Path, PathBuf}; use async_trait::async_trait; use directories::BaseDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use serde::Deserialize; use time::OffsetDateTime; -use uuid::timestamp::{context::NoContext, Timestamp}; use uuid::Uuid; +use uuid::timestamp::{Timestamp, context::NoContext}; -use super::{get_histpath, Importer, Loader}; +use super::{Importer, Loader, get_histpath}; use crate::history::History; use crate::utils::get_host_user; diff --git a/crates/atuin-client/src/import/xonsh_sqlite.rs b/crates/atuin-client/src/import/xonsh_sqlite.rs index 2817dc63..1b8d76fc 100644 --- a/crates/atuin-client/src/import/xonsh_sqlite.rs +++ b/crates/atuin-client/src/import/xonsh_sqlite.rs @@ -3,14 +3,14 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::BaseDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use futures::TryStreamExt; -use sqlx::{sqlite::SqlitePool, FromRow, Row}; +use sqlx::{FromRow, Row, sqlite::SqlitePool}; use time::OffsetDateTime; -use uuid::timestamp::{context::NoContext, Timestamp}; use uuid::Uuid; +use uuid::timestamp::{Timestamp, context::NoContext}; -use super::{get_histpath, Importer, Loader}; +use super::{Importer, Loader, get_histpath}; use crate::history::History; use crate::utils::get_host_user; diff --git a/crates/atuin-client/src/import/zsh.rs b/crates/atuin-client/src/import/zsh.rs index 07785967..f4b83cac 100644 --- a/crates/atuin-client/src/import/zsh.rs +++ b/crates/atuin-client/src/import/zsh.rs @@ -6,10 +6,10 @@ use std::path::PathBuf; use async_trait::async_trait; use directories::UserDirs; -use eyre::{eyre, Result}; +use eyre::{Result, eyre}; use time::OffsetDateTime; -use super::{get_histpath, unix_byte_lines, Importer, Loader}; +use super::{Importer, Loader, get_histpath, unix_byte_lines}; use crate::history::History; use crate::import::read_to_end; @@ -38,7 +38,7 @@ fn default_histpath() -> Result<PathBuf> { None => { break Err(eyre!( "Could not find history file. Try setting and exporting $HISTFILE" - )) + )); } } } diff --git a/crates/atuin-client/src/import/zsh_histdb.rs b/crates/atuin-client/src/import/zsh_histdb.rs index eb72baa3..cac85566 100644 --- a/crates/atuin-client/src/import/zsh_histdb.rs +++ b/crates/atuin-client/src/import/zsh_histdb.rs @@ -38,8 +38,8 @@ use std::path::{Path, PathBuf}; use async_trait::async_trait; use atuin_common::utils::uuid_v7; use directories::UserDirs; -use eyre::{eyre, Result}; -use sqlx::{sqlite::SqlitePool, Pool}; +use eyre::{Result, eyre}; +use sqlx::{Pool, sqlite::SqlitePool}; use time::PrimitiveDateTime; use super::Importer; @@ -178,10 +178,12 @@ mod test { use sqlx::sqlite::SqlitePoolOptions; use std::env; #[tokio::test(flavor = "multi_thread")] + #[allow(unsafe_code)] async fn test_env_vars() { let test_env_db = "nonstd-zsh-history.db"; let key = "HISTDB_FILE"; - env::set_var(key, test_env_db); + // TODO: Audit that the environment access only happens in single-threaded code. + unsafe { env::set_var(key, test_env_db) }; // test the env got set assert_eq!(env::var(key).unwrap(), test_env_db.to_string()); |
