aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-04-22 17:37:07 +0100
committerGitHub <noreply@github.com>2024-04-22 17:37:07 +0100
commit822593e77b106cdcde3b7e3f837d7fdf0b922ed4 (patch)
tree750f3b95dac819375d9c5e41c101e3f442e11ffe
parentdocs: fix "From source" `cd` command (#1973) (diff)
downloadatuin-822593e77b106cdcde3b7e3f837d7fdf0b922ed4.zip
fix(dotfiles): more fish alias import (#1974)
Serves me right for assuming fish mostly is POSIX.
-rw-r--r--crates/atuin-dotfiles/src/shell.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/atuin-dotfiles/src/shell.rs b/crates/atuin-dotfiles/src/shell.rs
index fba0a27f..a5cb0b7a 100644
--- a/crates/atuin-dotfiles/src/shell.rs
+++ b/crates/atuin-dotfiles/src/shell.rs
@@ -40,7 +40,12 @@ pub fn parse_alias(line: &str) -> Option<Alias> {
let mut parts = parts.iter().map(|s| s.to_string());
let name = parts.next().unwrap().to_string();
- let remaining = parts.collect::<Vec<String>>().join("=").to_string();
+
+ let remaining = if is_fish {
+ parts.collect::<Vec<String>>().join(" ").to_string()
+ } else {
+ parts.collect::<Vec<String>>().join("=").to_string()
+ };
Some(Alias {
name,
@@ -129,6 +134,16 @@ mod tests {
let alias = super::parse_alias("alias foo bar").expect("failed to parse alias");
assert_eq!(alias.name, "foo");
assert_eq!(alias.value, "bar");
+
+ let alias =
+ super::parse_alias("alias x 'exa --icons --git --classify --group-directories-first'")
+ .expect("failed to parse alias");
+
+ assert_eq!(alias.name, "x");
+ assert_eq!(
+ alias.value,
+ "'exa --icons --git --classify --group-directories-first'"
+ );
}
#[test]