From 20f329646894e11e47e7e516b076fa23976c0d5a Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 15 Feb 2024 19:07:08 +0000 Subject: feat: support syncing aliases (#1721) * feat: support syncing aliases This is definitely not yet finished, but works for zsh right now. TODO: 1. Support other shells 2. Cache the alias generation, so we don't have to do a bunch of work at shell init time * correct imports * fix clippy errors * fix tests * add the other shells * support xonsh * add delete * update rust, then make clippy happy once more * omfg fmt too --- atuin-config/src/shell/bash.rs | 12 ++++++++++++ atuin-config/src/shell/fish.rs | 12 ++++++++++++ atuin-config/src/shell/xonsh.rs | 12 ++++++++++++ atuin-config/src/shell/zsh.rs | 12 ++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 atuin-config/src/shell/bash.rs create mode 100644 atuin-config/src/shell/fish.rs create mode 100644 atuin-config/src/shell/xonsh.rs create mode 100644 atuin-config/src/shell/zsh.rs (limited to 'atuin-config/src/shell') diff --git a/atuin-config/src/shell/bash.rs b/atuin-config/src/shell/bash.rs new file mode 100644 index 00000000..c5bd87b2 --- /dev/null +++ b/atuin-config/src/shell/bash.rs @@ -0,0 +1,12 @@ +use super::Alias; + +// Configuration for bash +pub fn build(aliases: &[Alias]) -> String { + let mut config = String::new(); + + for alias in aliases { + config.push_str(&format!("alias {}='{}'\n", alias.name, alias.value)); + } + + config +} diff --git a/atuin-config/src/shell/fish.rs b/atuin-config/src/shell/fish.rs new file mode 100644 index 00000000..c6277f34 --- /dev/null +++ b/atuin-config/src/shell/fish.rs @@ -0,0 +1,12 @@ +use super::Alias; + +// Configuration for fish +pub fn build(aliases: &[Alias]) -> String { + let mut config = String::new(); + + for alias in aliases { + config.push_str(&format!("alias {}='{}'\n", alias.name, alias.value)); + } + + config +} diff --git a/atuin-config/src/shell/xonsh.rs b/atuin-config/src/shell/xonsh.rs new file mode 100644 index 00000000..8b61ff4c --- /dev/null +++ b/atuin-config/src/shell/xonsh.rs @@ -0,0 +1,12 @@ +use super::Alias; + +// Configuration for xonsh +pub fn build(aliases: &[Alias]) -> String { + let mut config = String::new(); + + for alias in aliases { + config.push_str(&format!("aliases['{}'] ='{}'\n", alias.name, alias.value)); + } + + config +} diff --git a/atuin-config/src/shell/zsh.rs b/atuin-config/src/shell/zsh.rs new file mode 100644 index 00000000..6f81ed55 --- /dev/null +++ b/atuin-config/src/shell/zsh.rs @@ -0,0 +1,12 @@ +use super::Alias; + +// Configuration for zsh +pub fn build(aliases: &[Alias]) -> String { + let mut config = String::new(); + + for alias in aliases { + config.push_str(&format!("alias {}='{}'\n", alias.name, alias.value)); + } + + config +} -- cgit v1.3.1