package cmd
import (
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
var (
branch = ""
logLevel = ""
)
func NewRootCmd(logger *logrus.Logger) *cobra.Command {
cmd := &cobra.Command{
Use: "previewctl",
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
lvl, err := logrus.ParseLevel(logLevel)
if err != nil {
return err
}
logger.SetLevel(lvl)
return nil
},
Short: "Your best friend when interacting with Preview Environments :)",
Long: `previewctl is your best friend when interacting with Preview Environments :)`,
}
viper.AutomaticEnv()
cmd.PersistentFlags().StringVar(&branch, "branch", "", "From which branch's preview previewctl should interact with. By default it will use the result of \"git rev-parse --abbrev-ref HEAD\"")
cmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "The logger's log level")
cmd.AddCommand(
newInstallContextCmd(logger),
newGetNameCmd(),
newListPreviewsCmd(logger),
newSSHPreviewCmd(logger),
newGetCmd(logger),
newHasAccessCmd(logger),
newReportNameCmd(),
newCreateCmd(logger),
newAdminCmd(logger),
)
return cmd
}