From a16ed0e03062443f9f6e0473a50d392c907c9903 Mon Sep 17 00:00:00 2001 From: Ahurac Date: Tue, 16 Apr 2024 16:08:15 +0200 Subject: [PATCH] builtins::cd : meilleur gestion des erreurs --- src/command/builtins.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/command/builtins.rs b/src/command/builtins.rs index f192b69..18fd624 100644 --- a/src/command/builtins.rs +++ b/src/command/builtins.rs @@ -1,4 +1,5 @@ -use crate::{error::print_error, exit_code::ExitCode}; +use crate::error::print_error; +use crate::exit_code::ExitCode; use std::env; use std::{env::set_current_dir, path::PathBuf}; @@ -17,18 +18,18 @@ pub(super) fn cd(args: &Vec) -> ExitCode { let exit_code: ExitCode; if path.is_some() { - exit_code = match set_current_dir(path.unwrap()) { - Ok(()) => ExitCode::success(), - Err(_e) => ExitCode::new(2), - }; + let result = set_current_dir(path.unwrap()); + + if result.is_err() { + print_error("cd: no such file or directory"); + exit_code = ExitCode::new(2); + } else { + exit_code = ExitCode::success(); + } } else { exit_code = ExitCode::success(); } - if exit_code.get() != 0 { - print_error("lol"); - } - exit_code }