Compare commits

..

No commits in common. "d36f61bc8072565aa05c9659ee2269cf9009e01f" and "00b8e2c4b6a0ff9f4685eb34eb10585685054397" have entirely different histories.

2 changed files with 16 additions and 65 deletions

@ -6,6 +6,7 @@ import (
"flag" "flag"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log"
"os" "os"
"os/exec" "os/exec"
"strconv" "strconv"
@ -18,23 +19,19 @@ type CzType struct {
} }
type CzCommit struct { type CzCommit struct {
Type *CzType Type *CzType
Scope *string Scope *string
Subject *string Subject *string
Body *string Body *string
BreakingChange *string Footer *string
Closes *string
} }
var StdinInput = bufio.NewReader(os.Stdin) var StdinInput = bufio.NewReader(os.Stdin)
var ( var (
InputTypePrompt = "选择或输入一个提交类型(必填): " InputTypePrompt = "选择或输入一个提交类型(必填): "
InputScopePrompt = "说明本次提交的影响范围(必填): " InputScopePrompt = "说明本次提交的影响范围(必填): "
InputSubjectPrompt = "对本次提交进行简短描述(必填): " InputSubjectPrompt = "对本次提交进行简短描述(必填): "
InputBodyPrompt = "对本次提交进行完整描述(选填): "
InputBreakingChangePrompt = "如果当前代码版本与上一版本不兼容,对变动、变动的理由及迁移的方法进行描述(选填): "
InputClosesPrompt = "如果本次提交针对某个issue,列出关闭的issues(选填): "
) )
var CzTypeList = []CzType{ var CzTypeList = []CzType{
@ -92,12 +89,9 @@ func main() {
czCommit.Type = InputType() czCommit.Type = InputType()
czCommit.Scope = InputScope() czCommit.Scope = InputScope()
czCommit.Subject = InputSubject() czCommit.Subject = InputSubject()
czCommit.Body = InputBody()
czCommit.BreakingChange = InputBreakingChange()
czCommit.Closes = InputCloses()
commit := GenerateCommit(czCommit) commit := GenerateCommit(czCommit)
if err := GitCommit(commit, *amend); err != nil { if err := GitCommit(commit, *amend); err != nil {
fmt.Println(err) log.Println(err)
} }
} }
@ -160,7 +154,6 @@ func InputType() *CzType {
return &CzTypeList[i] return &CzTypeList[i]
} }
} }
NewLine()
return InputType() return InputType()
} }
@ -172,7 +165,6 @@ func InputScope() *string {
NewLine() NewLine()
return &text return &text
} }
NewLine()
return InputScope() return InputScope()
} }
@ -184,63 +176,22 @@ func InputSubject() *string {
NewLine() NewLine()
return &text return &text
} }
NewLine() return InputScope()
return InputSubject()
}
func InputBody() *string {
fmt.Print(InputBodyPrompt)
text, _ := StdinInput.ReadString('\n')
text = strings.TrimSpace(text)
if text != "" {
NewLine()
return &text
}
NewLine()
return nil
}
func InputBreakingChange() *string {
fmt.Print(InputBreakingChangePrompt)
text, _ := StdinInput.ReadString('\n')
text = strings.TrimSpace(text)
if text != "" {
NewLine()
return &text
}
NewLine()
return nil
}
func InputCloses() *string {
fmt.Print(InputClosesPrompt)
text, _ := StdinInput.ReadString('\n')
text = strings.TrimSpace(text)
if text != "" {
NewLine()
return &text
}
NewLine()
return nil
} }
func GenerateCommit(czCommit *CzCommit) string { func GenerateCommit(czCommit *CzCommit) string {
commit := fmt.Sprintf( commit := fmt.Sprintf(
"%s(%s): %s\n\n", "%s(%s): %s\n",
czCommit.Type.Type, czCommit.Type.Type,
*czCommit.Scope, *czCommit.Scope,
*czCommit.Subject, *czCommit.Subject,
) )
if czCommit.Body != nil { if czCommit.Body != nil {
commit += *czCommit.Body commit += *czCommit.Body
commit += "\n\n"
} }
if czCommit.BreakingChange != nil { commit += "\n"
commit += ("BREAKING CHANGE: " + *czCommit.BreakingChange) if czCommit.Footer != nil {
commit += "\n\n" commit += *czCommit.Footer
}
if czCommit.Closes != nil {
commit += ("Closes fix " + *czCommit.Closes)
} }
return commit return commit
} }

2
go.mod

@ -1,3 +1,3 @@
module github.com/xiaoqidun/gitcz module github.com/xiaoqidun/gitcz
go 1.18 go 1.17