feat: add command version

main
sudo pacman -Syu 2022-05-31 18:09:18 +07:00
parent bd2446b22c
commit 6ab5957956
No known key found for this signature in database
GPG Key ID: D6CB5C6C567C47B0
6 changed files with 43 additions and 16 deletions

View File

@ -13,7 +13,7 @@ Tool to generate `CHANGELOG.md`, `CHANGELOG.rst` from [Conventional Commits](htt
- [x] Interactive mode - [x] Interactive mode
- [ ] Unit test - [ ] Unit test
- [ ] Auto generate commit after gen CHANGELOG - [ ] Auto generate commit after gen CHANGELOG
- [ ] Add version command - [x] Add version command
## Install ## Install

1
go.mod
View File

@ -5,6 +5,7 @@ go 1.18
require ( require (
github.com/go-git/go-git/v5 v5.4.2 github.com/go-git/go-git/v5 v5.4.2
github.com/haunt98/clock-go v0.3.0 github.com/haunt98/clock-go v0.3.0
github.com/make-go-great/buildinfo-go v0.0.1
github.com/make-go-great/color-go v0.3.0 github.com/make-go-great/color-go v0.3.0
github.com/make-go-great/ioe-go v0.4.0 github.com/make-go-great/ioe-go v0.4.0
github.com/make-go-great/markdown-go v0.5.0 github.com/make-go-great/markdown-go v0.5.0

2
go.sum
View File

@ -56,6 +56,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/make-go-great/buildinfo-go v0.0.1 h1:cMqVGVttHXC1hilwJxzZfyTF2LTvx5G6QAaFVG0KEHo=
github.com/make-go-great/buildinfo-go v0.0.1/go.mod h1:neEb4WWRyUmzQvlMqvrjiDexkS+QXZMq2B5yXLe4GS8=
github.com/make-go-great/color-go v0.3.0 h1:ZVtVk/wVVsZZwSJG7PZpsY5zwIyGao5VoN48yKfSzYA= github.com/make-go-great/color-go v0.3.0 h1:ZVtVk/wVVsZZwSJG7PZpsY5zwIyGao5VoN48yKfSzYA=
github.com/make-go-great/color-go v0.3.0/go.mod h1:G5G8IJ3PUo+vSQ+UvnfaswF8O/piVIhFJKv1mQjBGpI= github.com/make-go-great/color-go v0.3.0/go.mod h1:G5G8IJ3PUo+vSQ+UvnfaswF8O/piVIhFJKv1mQjBGpI=
github.com/make-go-great/ioe-go v0.4.0 h1:abRH8J01am7A9VsinEG0WnXDiT1CWk7Cd0auRvWuNyQ= github.com/make-go-great/ioe-go v0.4.0 h1:abRH8J01am7A9VsinEG0WnXDiT1CWk7Cd0auRvWuNyQ=

View File

@ -1,8 +1,10 @@
package cli package cli
import ( import (
"fmt"
"log" "log"
"github.com/make-go-great/buildinfo-go"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
) )
@ -33,6 +35,21 @@ type action struct {
} }
} }
func (a *action) RunVersion(c *cli.Context) error {
info, ok := buildinfo.Read()
if !ok {
return nil
}
version := info.GitCommit
if info.GitTag != "" {
version = info.GitTag
}
fmt.Println(version)
return nil
}
func (a *action) RunHelp(c *cli.Context) error { func (a *action) RunHelp(c *cli.Context) error {
return cli.ShowAppHelp(c) return cli.ShowAppHelp(c)
} }

View File

@ -28,7 +28,7 @@ func (a *action) RunGenerate(c *cli.Context) error {
return cli.ShowAppHelp(c) return cli.ShowAppHelp(c)
} }
} else { } else {
fmt.Printf("Input version (%s):\n", usageVersion) fmt.Printf("Input version (%s):\n", usageFlagVersion)
a.flags.version = ioe.ReadInput() a.flags.version = ioe.ReadInput()
fmt.Printf("Input from (%s):\n", usageFrom) fmt.Printf("Input from (%s):\n", usageFrom)

View File

@ -24,10 +24,12 @@ const (
flagInteractive = "interactive" flagInteractive = "interactive"
commandGenerate = "generate" commandGenerate = "generate"
commandVersion = "version"
usageGenerate = "generate changelog" usageGenerate = "generate changelog"
usageCommandVersion = "version of changeloguru"
usageVerbose = "show what is going on" usageVerbose = "show what is going on"
usageVersion = "`VERSION` to generate, follow Semantic Versioning" usageFlagVersion = "`VERSION` to generate, follow Semantic Versioning"
usageFrom = "from `COMMIT`, which is kinda new commit, default is latest commit" usageFrom = "from `COMMIT`, which is kinda new commit, default is latest commit"
usageTo = "to `COMMIT`, which is kinda old commit, default is oldest commit" usageTo = "to `COMMIT`, which is kinda old commit, default is oldest commit"
usageScope = "scope to generate" usageScope = "scope to generate"
@ -40,7 +42,7 @@ const (
) )
var ( var (
aliasGenerate = []string{"gen"} aliasGenerate = []string{"g, gen"}
aliasVerbose = []string{"v"} aliasVerbose = []string{"v"}
aliasInteractive = []string{"i"} aliasInteractive = []string{"i"}
) )
@ -68,7 +70,7 @@ func NewApp() *App {
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: flagVersion, Name: flagVersion,
Usage: usageVersion, Usage: usageFlagVersion,
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: flagFrom, Name: flagFrom,
@ -115,6 +117,11 @@ func NewApp() *App {
}, },
Action: a.RunGenerate, Action: a.RunGenerate,
}, },
{
Name: commandVersion,
Usage: usageCommandVersion,
Action: a.RunVersion,
},
}, },
Action: a.RunHelp, Action: a.RunHelp,
} }