From 7c5772b44dbf47bcf31e66634ae28dd238f0c072 Mon Sep 17 00:00:00 2001 From: Steven Xu Date: Tue, 19 Mar 2024 16:34:32 +1100 Subject: [PATCH] feat: add *Nushell* autostart script --- zellij-utils/assets/shell/auto-start.nu | 10 ++++++++++ zellij-utils/src/setup.rs | 14 +++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 zellij-utils/assets/shell/auto-start.nu diff --git a/zellij-utils/assets/shell/auto-start.nu b/zellij-utils/assets/shell/auto-start.nu new file mode 100644 index 0000000000..ea43b23fdd --- /dev/null +++ b/zellij-utils/assets/shell/auto-start.nu @@ -0,0 +1,10 @@ +if 'ZELLIJ' not-in $env { + if $env.ZELLIJ_AUTO_ATTACH? == 'true' { + zellij attach --create + } else { + zellij + } + if $env.ZELLIJ_AUTO_EXIT? == 'true' { + exit + } +} diff --git a/zellij-utils/src/setup.rs b/zellij-utils/src/setup.rs index d414658721..212ef57e61 100644 --- a/zellij-utils/src/setup.rs +++ b/zellij-utils/src/setup.rs @@ -209,6 +209,12 @@ pub const ZSH_AUTO_START_SCRIPT: &[u8] = include_bytes!(concat!( "assets/shell/auto-start.zsh" )); +pub const NU_AUTO_START_SCRIPT: &[u8] = include_bytes!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/", + "assets/shell/auto-start.nu" +)); + pub fn add_layout_ext(s: &str) -> String { match s { c if s.ends_with(".kdl") => c.to_owned(), @@ -619,6 +625,13 @@ impl Setup { } fn generate_auto_start(shell: &str) { + let mut out = std::io::stdout(); + + if shell.to_lowercase() == "nu" { + let _ = out.write_all(NU_AUTO_START_SCRIPT); + return; + } + let shell: Shell = match shell.to_lowercase().parse() { Ok(shell) => shell, _ => { @@ -627,7 +640,6 @@ impl Setup { }, }; - let mut out = std::io::stdout(); match shell { Shell::Bash => { let _ = out.write_all(BASH_AUTO_START_SCRIPT);