package cmdutil
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
const FlagEnumAnnotation = "gc.enum"
const TopicAnnotation = "gc.topic"
var StandardTopics = []string{
"auth",
"commits",
"issues",
"labels",
"milestones",
"precommit",
"pull-requests",
"releases",
"repo",
}
func SetFlagEnum(cmd *cobra.Command, name string, values ...string) error {
if err := cmd.Flags().SetAnnotation(name, FlagEnumAnnotation, values); err != nil {
return fmt.Errorf("failed to annotate flag %q: %w", name, err)
}
return nil
}
func SetFlagEnumOrWarn(cmd *cobra.Command, name string, values ...string) {
if err := SetFlagEnum(cmd, name, values...); err != nil {
fmt.Fprintf(os.Stderr, "gc: warning: %v\n", err)
}
}
func SetTopicAnnotation(cmd *cobra.Command, topic string) {
if cmd.Annotations == nil {
cmd.Annotations = make(map[string]string)
}
cmd.Annotations[TopicAnnotation] = topic
}