Skip to content

Commit

Permalink
Some nits (#29)
Browse files Browse the repository at this point in the history
* Add installation hint about shell completion

* Replace usage of deprecated `genericiooptions.IOStreams`

* Replace usage of deprecated `term.AllowsColorOutput`

* Nits in `PrintFlags`
  • Loading branch information
timebertt authored Jun 3, 2024
1 parent 1de8d32 commit d6a2a42
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 24 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ Using go:
go install github.com/timebertt/kubectl-revisions@latest
```

Learn how to set up shell completion:

```bash
kubectl revisions completion -h
```

## Usage

### `k revisions get` / `k revisions list`
Expand Down
8 changes: 4 additions & 4 deletions pkg/cmd/completion/completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ import (
_ "embed"

"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
)

//go:embed kubectl_complete-revisions
var completionScript []byte

type Options struct {
genericclioptions.IOStreams
genericiooptions.IOStreams
}

func NewOptions(streams genericclioptions.IOStreams) *Options {
func NewOptions(streams genericiooptions.IOStreams) *Options {
return &Options{
IOStreams: streams,
}
}

func NewCommand(streams genericclioptions.IOStreams) *cobra.Command {
func NewCommand(streams genericiooptions.IOStreams) *cobra.Command {
o := NewOptions(streams)

cmd := &cobra.Command{
Expand Down
8 changes: 4 additions & 4 deletions pkg/cmd/diff/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (

"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
utilcomp "k8s.io/kubectl/pkg/util/completion"
"k8s.io/utils/exec"
Expand All @@ -22,7 +22,7 @@ import (
)

type Options struct {
genericclioptions.IOStreams
genericiooptions.IOStreams

Namespace string
Revisions []int64
Expand All @@ -31,7 +31,7 @@ type Options struct {
Diff diff.Program
}

func NewOptions(streams genericclioptions.IOStreams) *Options {
func NewOptions(streams genericiooptions.IOStreams) *Options {
printFlags := util.NewPrintFlags()
printFlags.WithDefaultOutput("yaml")
printFlags.TemplateOnly = true
Expand All @@ -47,7 +47,7 @@ func NewOptions(streams genericclioptions.IOStreams) *Options {
}
}

func NewCommand(f util.Factory, streams genericclioptions.IOStreams) *cobra.Command {
func NewCommand(f util.Factory, streams genericiooptions.IOStreams) *cobra.Command {
o := NewOptions(streams)

cmd := &cobra.Command{
Expand Down
8 changes: 4 additions & 4 deletions pkg/cmd/get/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"strings"

"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
utilcomp "k8s.io/kubectl/pkg/util/completion"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand All @@ -16,14 +16,14 @@ import (
)

type Options struct {
genericclioptions.IOStreams
genericiooptions.IOStreams

Namespace string
Revision int64
PrintFlags *util.PrintFlags
}

func NewOptions(streams genericclioptions.IOStreams) *Options {
func NewOptions(streams genericiooptions.IOStreams) *Options {
printFlags := util.NewPrintFlags()

return &Options{
Expand All @@ -32,7 +32,7 @@ func NewOptions(streams genericclioptions.IOStreams) *Options {
}
}

func NewCommand(f util.Factory, streams genericclioptions.IOStreams) *cobra.Command {
func NewCommand(f util.Factory, streams genericiooptions.IOStreams) *cobra.Command {
o := NewOptions(streams)

cmd := &cobra.Command{
Expand Down
9 changes: 5 additions & 4 deletions pkg/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import (

"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
"k8s.io/cli-runtime/pkg/printers"
"k8s.io/client-go/rest"
cmdutil "k8s.io/kubectl/pkg/cmd/util"
utilcomp "k8s.io/kubectl/pkg/util/completion"
"k8s.io/kubectl/pkg/util/term"

"github.com/timebertt/kubectl-revisions/pkg/cmd/completion"
"github.com/timebertt/kubectl-revisions/pkg/cmd/diff"
Expand All @@ -19,14 +20,14 @@ import (
)

type Options struct {
genericclioptions.IOStreams
genericiooptions.IOStreams

ConfigFlags *genericclioptions.ConfigFlags
}

func NewOptions() *Options {
return &Options{
IOStreams: genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr},
IOStreams: genericiooptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr},
ConfigFlags: genericclioptions.NewConfigFlags(true).WithDeprecatedPasswordFlag().WithDiscoveryBurst(300).WithDiscoveryQPS(50.0),
}
}
Expand All @@ -39,7 +40,7 @@ func NewCommand() *cobra.Command {
Short: "Time-travel through your workload revision history",

PersistentPreRunE: func(*cobra.Command, []string) error {
warningHandler := rest.NewWarningWriter(o.IOStreams.ErrOut, rest.WarningWriterOptions{Deduplicate: true, Color: term.AllowsColorOutput(o.IOStreams.ErrOut)})
warningHandler := rest.NewWarningWriter(o.IOStreams.ErrOut, rest.WarningWriterOptions{Deduplicate: true, Color: printers.AllowsColorOutput(o.IOStreams.ErrOut)})
rest.SetDefaultWarningHandler(warningHandler)
return nil
},
Expand Down
4 changes: 2 additions & 2 deletions pkg/cmd/util/print_flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ func (f *PrintFlags) OutputUsage() string {
if f.CustomColumnsFlags != nil {
usage += "custom columns [https://kubernetes.io/docs/reference/kubectl/#custom-columns], "
}
usage += "golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [https://kubernetes.io/docs/reference/kubectl/jsonpath/]."
usage += "golang template [https://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [https://kubernetes.io/docs/reference/kubectl/jsonpath/]."

return usage
}

// SetKind sets the Kind option of humanreadable flags
// SetKind sets the Kind option of human-readable flags
func (f *PrintFlags) SetKind(kind schema.GroupKind) {
f.TableFlags.SetKind(kind)
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/cmd/version/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"runtime/debug"

"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
)

// version can be set via:
Expand All @@ -24,16 +24,16 @@ func init() {
}

type Options struct {
genericclioptions.IOStreams
genericiooptions.IOStreams
}

func NewOptions(streams genericclioptions.IOStreams) *Options {
func NewOptions(streams genericiooptions.IOStreams) *Options {
return &Options{
IOStreams: streams,
}
}

func NewCommand(streams genericclioptions.IOStreams) *cobra.Command {
func NewCommand(streams genericiooptions.IOStreams) *cobra.Command {
o := NewOptions(streams)

return &cobra.Command{
Expand Down
4 changes: 2 additions & 2 deletions pkg/diff/program.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package diff

import (
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
kubectldiff "k8s.io/kubectl/pkg/cmd/diff"
"k8s.io/utils/exec"
)
Expand All @@ -14,7 +14,7 @@ type Program interface {

// NewProgram returns kubectl's default Program implementation that respects the KUBECTL_EXTERNAL_DIFF environment
// variable. It falls back to `diff -u -N` if the env var is unset.
func NewProgram(streams genericclioptions.IOStreams) Program {
func NewProgram(streams genericiooptions.IOStreams) Program {
return &kubectldiff.DiffProgram{
Exec: exec.New(),
IOStreams: streams,
Expand Down

0 comments on commit d6a2a42

Please sign in to comment.