MCPcopy
hub / github.com/spf13/cobra / execute

Method execute

command.go:905–1045  ·  view source on GitHub ↗
(a []string)

Source from the content-addressed store, hash-verified

903}
904
905func (c *Command) execute(a []string) (err error) {
906 if c == nil {
907 return fmt.Errorf("called Execute() on a nil Command")
908 }
909
910 if len(c.Deprecated) > 0 {
911 c.Printf("Command %q is deprecated, %s\n", c.Name(), c.Deprecated)
912 }
913
914 // initialize help and version flag at the last point possible to allow for user
915 // overriding
916 c.InitDefaultHelpFlag()
917 c.InitDefaultVersionFlag()
918
919 err = c.ParseFlags(a)
920 if err != nil {
921 return c.FlagErrorFunc()(c, err)
922 }
923
924 // If help is called, regardless of other flags, return we want help.
925 // Also say we need help if the command isn't runnable.
926 helpVal, err := c.Flags().GetBool(helpFlagName)
927 if err != nil {
928 // should be impossible to get here as we always declare a help
929 // flag in InitDefaultHelpFlag()
930 c.Println("\"help\" flag declared as non-bool. Please correct your code")
931 return err
932 }
933
934 if helpVal {
935 return flag.ErrHelp
936 }
937
938 // for back-compat, only add version flag behavior if version is defined
939 if c.Version != "" {
940 versionVal, err := c.Flags().GetBool("version")
941 if err != nil {
942 c.Println("\"version\" flag declared as non-bool. Please correct your code")
943 return err
944 }
945 if versionVal {
946 fn := c.getVersionTemplateFunc()
947 err := fn(c.OutOrStdout(), c)
948 if err != nil {
949 c.Println(err)
950 }
951 return err
952 }
953 }
954
955 if !c.Runnable() {
956 return flag.ErrHelp
957 }
958
959 c.preRun()
960
961 defer c.postRun()
962

Callers 1

ExecuteCMethod · 0.80

Calls 15

PrintfMethod · 0.95
NameMethod · 0.95
InitDefaultHelpFlagMethod · 0.95
ParseFlagsMethod · 0.95
FlagErrorFuncMethod · 0.95
FlagsMethod · 0.95
PrintlnMethod · 0.95
OutOrStdoutMethod · 0.95
RunnableMethod · 0.95
preRunMethod · 0.95

Tested by

no test coverage detected