From 87df7d80eca0ede9e149d1ef533e71650e4b919a Mon Sep 17 00:00:00 2001 From: Conrad Ludgate Date: Sat, 11 Dec 2021 09:48:53 +0000 Subject: Fish importing (#234) * make a start on fish * fix * test * enable fish * fmt * update histpath set up fish init script * update readme * cover edge case * fmt * fix session variables Co-authored-by: PJ * respect NOBIND Co-authored-by: PJ * fix env var setting Co-authored-by: PJ * fix whitespace Co-authored-by: PJ * add fish to supported shells Co-authored-by: PJ --- src/command/import.rs | 11 +++++++++++ src/command/init.rs | 8 ++++++++ 2 files changed, 19 insertions(+) (limited to 'src/command') diff --git a/src/command/import.rs b/src/command/import.rs index 53940abb..166fcd3e 100644 --- a/src/command/import.rs +++ b/src/command/import.rs @@ -1,5 +1,6 @@ use std::{env, path::PathBuf}; +use atuin_client::import::fish::Fish; use eyre::{eyre, Result}; use structopt::StructOpt; @@ -33,6 +34,12 @@ pub enum Cmd { aliases=&["r", "re", "res"], )] Resh, + + #[structopt( + about="import history from the fish history file", + aliases=&["f", "fi", "fis"], + )] + Fish, } const BATCH_SIZE: usize = 100; @@ -54,6 +61,9 @@ impl Cmd { if shell.ends_with("/zsh") { println!("Detected ZSH"); import::, _>(db, BATCH_SIZE).await + } else if shell.ends_with("/fish") { + println!("Detected Fish"); + import::, _>(db, BATCH_SIZE).await } else { println!("cannot import {} history", shell); Ok(()) @@ -63,6 +73,7 @@ impl Cmd { Self::Zsh => import::, _>(db, BATCH_SIZE).await, Self::Bash => import::, _>(db, BATCH_SIZE).await, Self::Resh => import::(db, BATCH_SIZE).await, + Self::Fish => import::, _>(db, BATCH_SIZE).await, } } } diff --git a/src/command/init.rs b/src/command/init.rs index b6fbe4b3..5d3ffed2 100644 --- a/src/command/init.rs +++ b/src/command/init.rs @@ -6,6 +6,8 @@ pub enum Cmd { Zsh, #[structopt(about = "bash setup")] Bash, + #[structopt(about = "fish setup")] + Fish, } fn init_zsh() { @@ -18,11 +20,17 @@ fn init_bash() { println!("{}", full); } +fn init_fish() { + let full = include_str!("../shell/atuin.fish"); + println!("{}", full); +} + impl Cmd { pub fn run(&self) { match self { Self::Zsh => init_zsh(), Self::Bash => init_bash(), + Self::Fish => init_fish(), } } } -- cgit v1.3.1