From f84707b5b1bfbc0543b1b4da181440daadd98f49 Mon Sep 17 00:00:00 2001 From: vilmibm Date: Wed, 27 May 2020 14:41:02 -0500 Subject: [PATCH] args length check; needs test --- command/root.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/command/root.go b/command/root.go index 908685d12..7ed0fc7de 100644 --- a/command/root.go +++ b/command/root.go @@ -465,21 +465,20 @@ func determineEditor(cmd *cobra.Command) (string, error) { } func ExpandAlias(args []string) ([]string, error) { - // TODO i don't love that context is being init'd twice. My reading of the code is that it is - // idempotent and okay but I don't know if that's ok to depend on. - if len(args) == 1 { + empty := []string{} + if len(args) < 2 { // the command is lacking a subcommand - return []string{}, nil + return empty, nil } ctx := initContext() cfg, err := ctx.Config() if err != nil { - return []string{}, err + return empty, err } aliases, err := cfg.Aliases() if err != nil { - return []string{}, err + return empty, err } if aliases.Exists(args[1]) { @@ -489,7 +488,7 @@ func ExpandAlias(args []string) ([]string, error) { expansion = strings.Replace(expansion, fmt.Sprintf("$%d", i+1), a, 1) } if strings.Contains(expansion, "$") { - return []string{}, fmt.Errorf("not enough arguments for alias: %s", expansion) + return empty, fmt.Errorf("not enough arguments for alias: %s", expansion) } } return shlex.Split(expansion)