do not use string concatenation for extra args

This commit is contained in:
vilmibm 2020-06-02 16:07:24 -05:00
parent c960e568f8
commit a3a6f25024
2 changed files with 12 additions and 2 deletions

View file

@ -200,6 +200,7 @@ aliases:
{"gh ia vilmibm", []string{"issue", "list", `--author=vilmibm`, `--assignee=vilmibm`}, ""},
{"gh ia $coolmoney$", []string{"issue", "list", `--author=$coolmoney$`, `--assignee=$coolmoney$`}, ""},
{"gh pr status", []string{"pr", "status"}, ""},
{"gh il vilmibm epic -R vilmibm/testing", []string{"issue", "list", "--author=vilmibm", "--label=epic", "-R", "vilmibm/testing"}, ""},
{"gh dne", []string{"dne"}, ""},
{"gh", []string{}, ""},
{"", []string{}, ""},

View file

@ -482,10 +482,11 @@ func ExpandAlias(args []string) ([]string, error) {
}
if aliases.Exists(args[1]) {
extraArgs := []string{}
expansion := aliases.Get(args[1])
for i, a := range args[2:] {
if !strings.Contains(expansion, "$") {
expansion += " " + a
extraArgs = append(extraArgs, a)
} else {
expansion = strings.ReplaceAll(expansion, fmt.Sprintf("$%d", i+1), a)
}
@ -494,7 +495,15 @@ func ExpandAlias(args []string) ([]string, error) {
if lingeringRE.MatchString(expansion) {
return empty, fmt.Errorf("not enough arguments for alias: %s", expansion)
}
return shlex.Split(expansion)
newArgs, err := shlex.Split(expansion)
if err != nil {
return nil, err
}
newArgs = append(newArgs, extraArgs...)
return newArgs, nil
}
return args[1:], nil