tools/version-tracker/cmd/root.go (34 lines of code) (raw):
package cmd
import (
"fmt"
"log"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/aws/eks-anywhere-build-tooling/tools/version-tracker/pkg/util/logger"
)
// rootCmd is the top-level version-tracker command used to track projects and their versions.
var rootCmd = &cobra.Command{
Use: "version-tracker",
Short: "Amazon EKS Anywhere Build-tooling Version Tracker",
Long: "Use version-tracker to check and update the Git tag and Go version used to build projects in aws/eks-anywhere-build-tooling",
PersistentPreRun: rootPersistentPreRun,
}
func init() {
rootCmd.PersistentFlags().IntP("verbosity", "v", 0, "Set the logging verbosity level")
if err := viper.BindPFlags(rootCmd.PersistentFlags()); err != nil {
log.Fatalf("failed to bind flags to root command: %v", err)
}
}
func Execute() error {
return rootCmd.Execute()
}
func rootPersistentPreRun(cmd *cobra.Command, args []string) {
if err := initLogger(); err != nil {
log.Fatal(err)
}
}
func initLogger() error {
if err := logger.Init(viper.GetInt("verbosity")); err != nil {
return fmt.Errorf("failed to init Zap logger in root command: %v", err)
}
return nil
}