mirror of
https://github.com/ahmetb/kubectx.git
synced 2025-07-16 08:17:20 +00:00
feat: added -q flag
This commit is contained in:
parent
561793c356
commit
6317bc2544
@ -40,6 +40,17 @@ func parseArgs(argv []string) Op {
|
|||||||
return ListOp{}
|
return ListOp{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if argv[0] == "-q" {
|
||||||
|
if cmdutil.IsInteractiveMode(os.Stdout) {
|
||||||
|
if len(argv) > 1 {
|
||||||
|
return InteractiveSwitchOp{SelfCmd: os.Args[0], Query: argv[1]}
|
||||||
|
} else {
|
||||||
|
return UnsupportedOp{Err: fmt.Errorf("'-q' needs arguments")}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return UnsupportedOp{Err: fmt.Errorf("'-q' only works in interactive mode")}
|
||||||
|
}
|
||||||
|
}
|
||||||
if argv[0] == "-d" {
|
if argv[0] == "-d" {
|
||||||
if len(argv) == 1 {
|
if len(argv) == 1 {
|
||||||
if cmdutil.IsInteractiveMode(os.Stdout) {
|
if cmdutil.IsInteractiveMode(os.Stdout) {
|
||||||
|
@ -32,13 +32,22 @@ import (
|
|||||||
|
|
||||||
type InteractiveSwitchOp struct {
|
type InteractiveSwitchOp struct {
|
||||||
SelfCmd string
|
SelfCmd string
|
||||||
|
Query string
|
||||||
|
FzfFlags []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type InteractiveDeleteOp struct {
|
type InteractiveDeleteOp struct {
|
||||||
SelfCmd string
|
SelfCmd string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (op InteractiveSwitchOp) Run(_, stderr io.Writer) error {
|
func (op InteractiveSwitchOp) Run(stdout io.Writer, stderr io.Writer) error {
|
||||||
|
if op.Query != "" {
|
||||||
|
op.FzfFlags = append(op.FzfFlags, "-q", op.Query)
|
||||||
|
}
|
||||||
|
return op._Run(stdout, stderr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (op InteractiveSwitchOp) _Run(_, stderr io.Writer) error {
|
||||||
// parse kubeconfig just to see if it can be loaded
|
// parse kubeconfig just to see if it can be loaded
|
||||||
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
|
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
|
||||||
if err := kc.Parse(); err != nil {
|
if err := kc.Parse(); err != nil {
|
||||||
@ -49,8 +58,11 @@ func (op InteractiveSwitchOp) Run(_, stderr io.Writer) error {
|
|||||||
return errors.Wrap(err, "kubeconfig error")
|
return errors.Wrap(err, "kubeconfig error")
|
||||||
}
|
}
|
||||||
kc.Close()
|
kc.Close()
|
||||||
|
fzfFlags := append([]string{"--ansi", "--no-preview"}, op.FzfFlags...)
|
||||||
cmd := exec.Command("fzf", "--ansi", "--no-preview")
|
cmd := exec.Command(
|
||||||
|
"fzf",
|
||||||
|
fzfFlags...,
|
||||||
|
)
|
||||||
var out bytes.Buffer
|
var out bytes.Buffer
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stderr = stderr
|
cmd.Stderr = stderr
|
||||||
|
Loading…
Reference in New Issue
Block a user