diff --git a/internal/argparser/argparser.go b/internal/argparser/argparser.go index 9f53114..9a84a43 100644 --- a/internal/argparser/argparser.go +++ b/internal/argparser/argparser.go @@ -1,30 +1,38 @@ package argparser -import "errors" +import ( + "errors" + "strings" +) func Parse(args []string) (err error, commit_type string, commit_scope string, shouldCommit bool, shouldStage bool, commit_message []string) { argparseloop: for i := 0; i < len(args); i++ { - switch args[i] { - case "-c", "--commit", "-commit": - shouldCommit = true - case "-a", "--add", "-add": - shouldStage = true - case "--": - commit_message = args[i+1:] - break argparseloop - default: - if commit_type == "" { - commit_type = args[i] - continue argparseloop - } - if commit_scope == "" { - commit_scope = args[i] - continue argparseloop - } - err = errors.New("unknown argument") - return + if strings.HasPrefix(args[i],"-") { + switch args[i] { + case "-c", "--commit", "-commit": + shouldCommit = true + case "-a", "--add", "-add": + shouldStage = true + case "--": + commit_message = args[i+1:] + break argparseloop + default: + err = errors.New("unknown argument") + return + } } + if commit_type == "" { + commit_type = args[i] + } else if commit_scope == "" { + commit_scope = args[i] + } else { + err = errors.New("unknown argument") + return + } + } + if commit_type == "" { + err = errors.New("need at least type") } return }