From 5e0431e6687a48747fe29302a6673d3c3dfce75e Mon Sep 17 00:00:00 2001 From: Scott Stuart Date: Sun, 30 Jun 2024 18:08:31 -0600 Subject: [PATCH] look up ns only once (#237) --- src/cmd/namespace.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/cmd/namespace.rs b/src/cmd/namespace.rs index ddd13e81..9e6e4a78 100644 --- a/src/cmd/namespace.rs +++ b/src/cmd/namespace.rs @@ -25,12 +25,6 @@ pub fn namespace( return enter_namespace(settings, &mut session, recursive, None); } - let namespaces = if settings.behavior.validate_namespaces { - kubectl::get_namespaces(None)? - } else { - vec![] - }; - let namespace_name = match namespace_name { Some(s) if s == "-" => Some( session @@ -38,14 +32,19 @@ pub fn namespace( .context("There is not previous namespace to switch to")? .to_string(), ), - Some(s) if settings.behavior.validate_namespaces && !namespaces.contains(&s) => { - return Err(anyhow!("'{}' is not a valid namespace for the context", s)) + Some(s) => { + if settings.behavior.validate_namespaces { + let namespaces = kubectl::get_namespaces(None)?; + if !namespaces.contains(&s) { + return Err(anyhow!("'{}' is not a valid namespace for the context", s)) + } + } + Some(s) } None => match select_or_list_namespace(skim_options)? { SelectResult::Selected(s) => Some(s), _ => return Ok(()), }, - Some(_) => namespace_name, }; enter_namespace(settings, &mut session, recursive, namespace_name)