// Package spec provides spec file generation for use with carapace-bin
package spec import ( ) // Snippet generates the spec file. func ( *cobra.Command) string { , := yaml.Marshal(command()) return string() } func command( *cobra.Command) Command { := Command{ Name: .Use, Description: .Short, Aliases: .Aliases, Group: .GroupID, Hidden: .Hidden, Flags: make(map[string]string), PersistentFlags: make(map[string]string), Commands: make([]Command, 0), } // TODO mutually exclusive flags .LocalFlags().VisitAll(func( *pflag.Flag) { if .PersistentFlags().Lookup(.Name) != nil { return } := pflagfork.Flag{Flag: } .Flags[.Definition()] = .Usage }) .PersistentFlags().VisitAll(func( *pflag.Flag) { := pflagfork.Flag{Flag: } .PersistentFlags[.Definition()] = .Usage }) for , := range .Commands() { if .Name() != "_carapace" && .Deprecated == "" { .Commands = append(.Commands, ()) } } return }