Merge pull request #16 from fluxcd/bash-completion

Add bash completion command
pull/17/head
Stefan Prodan 5 years ago committed by GitHub
commit 58c096e7c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,3 +23,6 @@ install:
.PHONY: docs
docs:
mkdir -p ./docs/cmd && go run ./cmd/tk/ docgen
install-dev:
CGO_ENABLED=0 go build -o /usr/local/bin ./cmd/tk

@ -0,0 +1,28 @@
package main
import (
"os"
"github.com/spf13/cobra"
)
var completionCmd = &cobra.Command{
Use: "completion",
Short: "Generates bash completion scripts",
Example: `To load completion run
. <(tk completion)
To configure your bash shell to load completions for each session add to your bashrc
# ~/.bashrc or ~/.profile
. <(tk completion)
`,
Run: func(cmd *cobra.Command, args []string) {
rootCmd.GenBashCompletion(os.Stdout)
},
}
func init() {
rootCmd.AddCommand(completionCmd)
}

@ -14,7 +14,7 @@ var (
)
func init() {
deleteCmd.PersistentFlags().BoolVarP(&deleteSilent, "silent", "", false,
deleteCmd.PersistentFlags().BoolVarP(&deleteSilent, "silent", "s", false,
"delete resource without asking for confirmation")
rootCmd.AddCommand(deleteCmd)

@ -47,15 +47,11 @@ func deleteKsCmdRun(cmd *cobra.Command, args []string) error {
}
if !deleteSilent {
warning := "This action will remove the Kubernetes objects previously applied by this kustomization. "
if kustomization.Spec.Suspend {
warning = ""
if !kustomization.Spec.Suspend {
logWaiting("This action will remove the Kubernetes objects previously applied by the %s kustomization!", name)
}
prompt := promptui.Prompt{
Label: fmt.Sprintf(
"%sAre you sure you want to delete the %s kustomization from the %s namespace",
warning, name, namespace,
),
Label: "Are you sure you want to delete this kustomization",
IsConfirm: true,
}
if _, err := prompt.Run(); err != nil {

@ -47,9 +47,7 @@ func deleteSourceGitCmdRun(cmd *cobra.Command, args []string) error {
if !deleteSilent {
prompt := promptui.Prompt{
Label: fmt.Sprintf(
"Are you sure you want to delete the %s source from the %s namespace", name, namespace,
),
Label: "Are you sure you want to delete this source",
IsConfirm: true,
}
if _, err := prompt.Run(); err != nil {

@ -45,7 +45,7 @@ func getKsCmdRun(cmd *cobra.Command, args []string) error {
for _, kustomization := range list.Items {
if kustomization.Spec.Suspend {
logSuccess("%s is suspended", kustomization.GetName())
break
continue
}
isInitialized := false
for _, condition := range kustomization.Status.Conditions {

@ -3,9 +3,11 @@ package main
import (
"context"
"fmt"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
)
var resumeKsCmd = &cobra.Command{
@ -51,9 +53,24 @@ func resumeKsCmdRun(cmd *cobra.Command, args []string) error {
}
logSuccess("kustomization resumed")
if err := syncKsCmdRun(nil, []string{name}); err != nil {
logWaiting("waiting for kustomization sync")
if err := wait.PollImmediate(pollInterval, timeout,
isKustomizationReady(ctx, kubeClient, name, namespace)); err != nil {
return err
}
logSuccess("kustomization sync completed")
err = kubeClient.Get(ctx, namespacedName, &kustomization)
if err != nil {
return err
}
if kustomization.Status.LastAppliedRevision != "" {
logSuccess("applied revision %s", kustomization.Status.LastAppliedRevision)
} else {
return fmt.Errorf("kustomization sync failed")
}
return nil
}

@ -34,7 +34,7 @@ func init() {
"removes all CRDs previously installed")
uninstallCmd.Flags().BoolVarP(&uninstallDryRun, "dry-run", "", false,
"only print the object that would be deleted")
uninstallCmd.Flags().BoolVarP(&uninstallSilent, "silent", "", false,
uninstallCmd.Flags().BoolVarP(&uninstallSilent, "silent", "s", false,
"delete components without asking for confirmation")
rootCmd.AddCommand(uninstallCmd)

@ -79,6 +79,7 @@ Command line utility for assembling Kubernetes CD pipelines the GitOps way.
### SEE ALSO
* [tk check](tk_check.md) - Check requirements and installation
* [tk completion](tk_completion.md) - Generates bash completion scripts
* [tk create](tk_create.md) - Create commands
* [tk delete](tk_delete.md) - Delete commands
* [tk export](tk_export.md) - Export commands
@ -89,4 +90,4 @@ Command line utility for assembling Kubernetes CD pipelines the GitOps way.
* [tk sync](tk_sync.md) - Synchronize commands
* [tk uninstall](tk_uninstall.md) - Uninstall the toolkit components
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -44,4 +44,4 @@ tk check [flags]
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -0,0 +1,47 @@
## tk completion
Generates bash completion scripts
### Synopsis
Generates bash completion scripts
```
tk completion [flags]
```
### Examples
```
To load completion run
. <(tk completion)
To configure your bash shell to load completions for each session add to your bashrc
# ~/.bashrc or ~/.profile
. <(tk completion)
```
### Options
```
-h, --help help for completion
```
### Options inherited from parent commands
```
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
--namespace string the namespace scope for this operation (default "gitops-system")
--timeout duration timeout for this operation (default 5m0s)
--verbose print generated objects
```
### SEE ALSO
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
###### Auto generated by spf13/cobra on 1-May-2020

@ -29,4 +29,4 @@ Create commands
* [tk create kustomization](tk_create_kustomization.md) - Create or update a kustomization resource
* [tk create source](tk_create_source.md) - Create source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -67,4 +67,4 @@ tk create kustomization [name] [flags]
* [tk create](tk_create.md) - Create commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -28,4 +28,4 @@ Create source commands
* [tk create](tk_create.md) - Create commands
* [tk create source git](tk_create_source_git.md) - Create or update a git source
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -71,4 +71,4 @@ tk create source git [name] [flags]
* [tk create source](tk_create_source.md) - Create source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -10,7 +10,7 @@ Delete commands
```
-h, --help help for delete
--silent delete resource without asking for confirmation
-s, --silent delete resource without asking for confirmation
```
### Options inherited from parent commands
@ -29,4 +29,4 @@ Delete commands
* [tk delete kustomization](tk_delete_kustomization.md) - Delete kustomization
* [tk delete source](tk_delete_source.md) - Delete sources commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -22,7 +22,7 @@ tk delete kustomization [name] [flags]
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
--namespace string the namespace scope for this operation (default "gitops-system")
--silent delete resource without asking for confirmation
-s, --silent delete resource without asking for confirmation
--timeout duration timeout for this operation (default 5m0s)
--verbose print generated objects
```
@ -31,4 +31,4 @@ tk delete kustomization [name] [flags]
* [tk delete](tk_delete.md) - Delete commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -18,7 +18,7 @@ Delete sources commands
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
--namespace string the namespace scope for this operation (default "gitops-system")
--silent delete resource without asking for confirmation
-s, --silent delete resource without asking for confirmation
--timeout duration timeout for this operation (default 5m0s)
--verbose print generated objects
```
@ -28,4 +28,4 @@ Delete sources commands
* [tk delete](tk_delete.md) - Delete commands
* [tk delete source git](tk_delete_source_git.md) - Delete git source
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -22,7 +22,7 @@ tk delete source git [name] [flags]
--components strings list of components, accepts comma-separated values (default [source-controller,kustomize-controller])
--kubeconfig string path to the kubeconfig file (default "~/.kube/config")
--namespace string the namespace scope for this operation (default "gitops-system")
--silent delete resource without asking for confirmation
-s, --silent delete resource without asking for confirmation
--timeout duration timeout for this operation (default 5m0s)
--verbose print generated objects
```
@ -31,4 +31,4 @@ tk delete source git [name] [flags]
* [tk delete source](tk_delete_source.md) - Delete sources commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -29,4 +29,4 @@ Export commands
* [tk export kustomization](tk_export_kustomization.md) - Export kustomization in YAML format
* [tk export source](tk_export_source.md) - Export source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -42,4 +42,4 @@ tk export kustomization [name] [flags]
* [tk export](tk_export.md) - Export commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -29,4 +29,4 @@ Export source commands
* [tk export](tk_export.md) - Export commands
* [tk export source git](tk_export_source_git.md) - Export git sources in YAML format
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -43,4 +43,4 @@ tk export source git [name] [flags]
* [tk export source](tk_export_source.md) - Export source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -28,4 +28,4 @@ Get commands
* [tk get kustomizations](tk_get_kustomizations.md) - Get kustomizations status
* [tk get sources](tk_get_sources.md) - Get sources commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -31,4 +31,4 @@ tk get kustomizations [flags]
* [tk get](tk_get.md) - Get commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -27,4 +27,4 @@ Get sources commands
* [tk get](tk_get.md) - Get commands
* [tk get sources git](tk_get_sources_git.md) - Get git sources status
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -31,4 +31,4 @@ tk get sources git [flags]
* [tk get sources](tk_get_sources.md) - Get sources commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -49,4 +49,4 @@ tk install [flags]
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -27,4 +27,4 @@ Resume commands
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
* [tk resume kustomization](tk_resume_kustomization.md) - Resume kustomization
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -30,4 +30,4 @@ tk resume kustomization [name] [flags]
* [tk resume](tk_resume.md) - Resume commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -27,4 +27,4 @@ Suspend commands
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
* [tk suspend kustomization](tk_suspend_kustomization.md) - Suspend kustomization
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -30,4 +30,4 @@ tk suspend kustomization [name] [flags]
* [tk suspend](tk_suspend.md) - Suspend commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -28,4 +28,4 @@ Synchronize commands
* [tk sync kustomization](tk_sync_kustomization.md) - Synchronize kustomization
* [tk sync source](tk_sync_source.md) - Synchronize source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -43,4 +43,4 @@ tk sync kustomization [name] [flags]
* [tk sync](tk_sync.md) - Synchronize commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -27,4 +27,4 @@ Synchronize source commands
* [tk sync](tk_sync.md) - Synchronize commands
* [tk sync source git](tk_sync_source_git.md) - Synchronize git source
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -39,4 +39,4 @@ tk sync source git [name] [flags]
* [tk sync source](tk_sync_source.md) - Synchronize source commands
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -29,7 +29,7 @@ tk uninstall [flags]
--crds removes all CRDs previously installed
--dry-run only print the object that would be deleted
-h, --help help for uninstall
--silent delete components without asking for confirmation
-s, --silent delete components without asking for confirmation
```
### Options inherited from parent commands
@ -46,4 +46,4 @@ tk uninstall [flags]
* [tk](tk.md) - Command line utility for assembling Kubernetes CD pipelines
###### Auto generated by spf13/cobra on 30-Apr-2020
###### Auto generated by spf13/cobra on 1-May-2020

@ -7,7 +7,7 @@ require (
github.com/fluxcd/kustomize-controller v0.0.1-alpha.4
github.com/fluxcd/source-controller v0.0.1-alpha.2
github.com/manifoldco/promptui v0.7.0
github.com/spf13/cobra v0.0.6
github.com/spf13/cobra v1.0.0
k8s.io/api v0.18.2
k8s.io/apimachinery v0.18.2
k8s.io/client-go v0.18.2

@ -475,8 +475,8 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs=
github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=

Loading…
Cancel
Save