(a []string)
| 903 | } |
| 904 | |
| 905 | func (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 |
no test coverage detected