in cmd/apmtelemetrygen/main.go [33:76]
func main() {
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer cancel()
// Register root command in cobra
var rootCmd = &cobra.Command{
Use: "apmtelemetrygen",
TraverseChildren: true,
PersistentPreRunE: func(cmd *cobra.Command, _ []string) error {
var err error
cmd.Flags().VisitAll(func(flag *pflag.Flag) {
optionName := strings.ToUpper(flag.Name)
optionName = strings.ReplaceAll(optionName, "-", "_")
envVar := envVarPrefix + optionName
if val, ok := os.LookupEnv(envVar); !flag.Changed && ok {
if flagErr := flag.Value.Set(val); flagErr != nil {
err = fmt.Errorf("invalid environment variable %s: %w", envVar, flagErr)
}
}
})
return err
},
}
rootCmd.AddCommand(newRunCmd())
rootCmd.AddCommand(&cobra.Command{
Use: "version",
Short: "Show current version info",
Run: func(cmd *cobra.Command, _ []string) {
var buf bytes.Buffer
fmt.Fprintf(&buf, "%s %s", version.CommitSha(), version.BuildTime())
fmt.Fprintf(cmd.OutOrStdout(), "%s version %s (%s/%s) [%s]\n",
rootCmd.Name(), version.Version, runtime.GOOS, runtime.GOARCH,
buf.String(),
)
},
})
// Execute commands
if err := rootCmd.ExecuteContext(ctx); err != nil {
if !errors.Is(err, context.Canceled) {
fmt.Println(err)
}
}
}