From fa47639ef39c8b9645dccb574a3b8062d3015a29 Mon Sep 17 00:00:00 2001 From: jasmine Date: Tue, 10 Jun 2025 18:40:31 +0800 Subject: [PATCH] feat: better cd --- src/inbuilt.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/inbuilt.rs b/src/inbuilt.rs index 19f81b1..87126dd 100644 --- a/src/inbuilt.rs +++ b/src/inbuilt.rs @@ -1,8 +1,17 @@ // Provides Built-In Shell Functions. pub fn cd(args: &[String]) { - let path = args[0].to_string(); - assert!(std::env::set_current_dir(&path).is_ok()); + let path = if args.is_empty() { + std::env::var("HOME").unwrap_or_default() + } else { + shellexpand::tilde(&args[0]).to_string() + }; + + let status = std::env::set_current_dir(&path); + + if status.is_err() { + println!("cd: no such file or directory: {}", &path); + } } pub fn help() {