From ef02b82a048d8a63c40d0229fdc0dc878263cd9f Mon Sep 17 00:00:00 2001 From: Nicolas Olivier Date: Sat, 6 Mar 2021 23:03:03 -0500 Subject: [PATCH] Return error on no matching context --- src/cmd/exec.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/cmd/exec.rs b/src/cmd/exec.rs index b732d1f6..8eb66e2c 100644 --- a/src/cmd/exec.rs +++ b/src/cmd/exec.rs @@ -1,7 +1,7 @@ use std::process::Command; use std::thread; -use anyhow::Result; +use anyhow::{anyhow, Result}; use signal_hook::iterator::Signals; use crate::kubeconfig::{self, KubeConfig}; @@ -64,8 +64,13 @@ pub fn exec( } let installed = kubeconfig::get_installed_contexts(settings)?; + let matching = installed.get_contexts_matching(&context_name); - for context_src in installed.get_contexts_matching(&context_name) { + if matching.len() == 0 { + return Err(anyhow!("No context matching {}", context_name)); + } + + for context_src in matching { let kubeconfig = installed.make_kubeconfig_for_context(&context_src.item.name, Some(&namespace_name))?; let return_code = run_in_context(&kubeconfig, &args)?;