feat(cmd/joj3): check tag on non-empty
This commit is contained in:
parent
303e742d90
commit
92d88091ff
|
@ -192,7 +192,7 @@ func ParseConfFile(path string) (conf *Conf, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseMsg(confRoot, confName, msg string) (confPath, group string, err error) {
|
func ParseMsg(confRoot, confName, msg, tag string) (confPath, group string, err error) {
|
||||||
slog.Info("parse msg", "msg", msg)
|
slog.Info("parse msg", "msg", msg)
|
||||||
conventionalCommit, err := parseConventionalCommit(msg)
|
conventionalCommit, err := parseConventionalCommit(msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -210,6 +210,11 @@ func ParseMsg(confRoot, confName, msg string) (confPath, group string, err error
|
||||||
err = fmt.Errorf("invalid scope as path: %s", conventionalCommit.Scope)
|
err = fmt.Errorf("invalid scope as path: %s", conventionalCommit.Scope)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if tag != "" && conventionalCommit.Scope != tag {
|
||||||
|
err = fmt.Errorf("tag does not match scope: %s != %s", tag,
|
||||||
|
conventionalCommit.Scope)
|
||||||
|
return
|
||||||
|
}
|
||||||
groupKeywords := []string{"joj"}
|
groupKeywords := []string{"joj"}
|
||||||
for _, groupKeyword := range groupKeywords {
|
for _, groupKeyword := range groupKeywords {
|
||||||
if strings.Contains(
|
if strings.Contains(
|
||||||
|
|
|
@ -15,6 +15,7 @@ var (
|
||||||
confRoot string
|
confRoot string
|
||||||
confName string
|
confName string
|
||||||
msg string
|
msg string
|
||||||
|
tag string
|
||||||
showVersion *bool
|
showVersion *bool
|
||||||
Version string = "debug"
|
Version string = "debug"
|
||||||
)
|
)
|
||||||
|
@ -23,6 +24,7 @@ func init() {
|
||||||
flag.StringVar(&confRoot, "conf-root", ".", "root path for all config files")
|
flag.StringVar(&confRoot, "conf-root", ".", "root path for all config files")
|
||||||
flag.StringVar(&confName, "conf-name", "conf.json", "filename for config files")
|
flag.StringVar(&confName, "conf-name", "conf.json", "filename for config files")
|
||||||
flag.StringVar(&msg, "msg", "", "message to trigger the running, leave empty to use git commit message on HEAD")
|
flag.StringVar(&msg, "msg", "", "message to trigger the running, leave empty to use git commit message on HEAD")
|
||||||
|
flag.StringVar(&tag, "tag", "", "tag to trigger the running, when non-empty, should equal to the scope in msg")
|
||||||
showVersion = flag.Bool("version", false, "print current version")
|
showVersion = flag.Bool("version", false, "print current version")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +47,7 @@ func mainImpl() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
confPath, group, err := conf.ParseMsg(confRoot, confName, msg)
|
confPath, group, err := conf.ParseMsg(confRoot, confName, msg, tag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("parse msg", "error", err)
|
slog.Error("parse msg", "error", err)
|
||||||
validScopes, scopeErr := conf.ListValidScopes(
|
validScopes, scopeErr := conf.ListValidScopes(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user