1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00
kyverno/cmd/cli/kubectl-kyverno/main.go

46 lines
979 B
Go
Raw Normal View History

2020-03-06 03:00:18 +05:30
package main
import (
"flag"
"fmt"
"os"
2020-03-06 03:00:18 +05:30
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/commands"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/commands/apply"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/experimental"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/log"
"github.com/spf13/cobra"
)
2020-03-06 03:00:18 +05:30
func main() {
cmd, err := setup()
if err != nil {
fmt.Println("Error:", err)
os.Exit(1)
}
if err := cmd.Execute(); err != nil {
switch e := err.(type) {
case apply.WarnExitCodeError:
os.Exit(e.ExitCode)
default:
os.Exit(1)
}
}
}
func setup() (*cobra.Command, error) {
cmd := commands.RootCommand(experimental.IsEnabled())
if err := configureLogs(cmd); err != nil {
return nil, fmt.Errorf("Failed to setup logging (%w)", err)
}
return cmd, nil
}
func configureLogs(cli *cobra.Command) error {
if err := log.Configure(); err != nil {
return err
}
cli.PersistentFlags().AddGoFlagSet(flag.CommandLine)
return nil
}