Skip to content

Commit

Permalink
Merge pull request #3702 from douglaswth/powershell-completion
Browse files Browse the repository at this point in the history
Add powershell completion
  • Loading branch information
k8s-ci-robot committed Aug 13, 2024
2 parents 6692e5d + 5ac4817 commit 0f1c568
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
7 changes: 6 additions & 1 deletion pkg/cmd/kind/completion/completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"sigs.k8s.io/kind/pkg/cmd"
"sigs.k8s.io/kind/pkg/cmd/kind/completion/bash"
"sigs.k8s.io/kind/pkg/cmd/kind/completion/fish"
"sigs.k8s.io/kind/pkg/cmd/kind/completion/powershell"
"sigs.k8s.io/kind/pkg/cmd/kind/completion/zsh"
"sigs.k8s.io/kind/pkg/log"
)
Expand All @@ -47,11 +48,12 @@ func NewCommand(logger log.Logger, streams cmd.IOStreams) *cobra.Command {
cmd.AddCommand(zsh.NewCommand(logger, streams))
cmd.AddCommand(bash.NewCommand(logger, streams))
cmd.AddCommand(fish.NewCommand(logger, streams))
cmd.AddCommand(powershell.NewCommand(logger, streams))
return cmd
}

const longDescription = `
Outputs kind shell completion for the given shell (bash or zsh)
Outputs kind shell completion for the given shell (bash, fish, powershell, or zsh)
This depends on the bash-completion binary. Example installation instructions:
# for bash users
$ kind completion bash > ~/.kind-completion
Expand All @@ -69,6 +71,9 @@ This depends on the bash-completion binary. Example installation instructions:
# for fish users
% kind completion fish > ~/.config/fish/completions/kind.fish
# for powershell users
PS> kind completion powershell | Out-String | Invoke-Expression
Additionally, you may want to output the completion to a file and source in your .bashrc
Note for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2
`
38 changes: 38 additions & 0 deletions pkg/cmd/kind/completion/powershell/powershell.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
Copyright 2024 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// Package powershell implements the `powershell` command
package powershell

import (
"github.com/spf13/cobra"

"sigs.k8s.io/kind/pkg/cmd"
"sigs.k8s.io/kind/pkg/log"
)

// NewCommand returns a new cobra.Command for cluster creation
func NewCommand(logger log.Logger, streams cmd.IOStreams) *cobra.Command {
cmd := &cobra.Command{
Args: cobra.NoArgs,
Use: "powershell",
Short: "Output shell completions for powershell",
RunE: func(cmd *cobra.Command, args []string) error {
return cmd.Parent().Parent().GenPowerShellCompletion(streams.Out)
},
}
return cmd
}

0 comments on commit 0f1c568

Please sign in to comment.