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
- [ ] Unit test
- [ ] Auto generate commit after gen CHANGELOG
- [ ] Add version command
- [x] Add version command
## Install

1
go.mod
View File

@ -5,6 +5,7 @@ go 1.18
require (
github.com/go-git/go-git/v5 v5.4.2
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/ioe-go v0.4.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.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
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/go.mod h1:G5G8IJ3PUo+vSQ+UvnfaswF8O/piVIhFJKv1mQjBGpI=
github.com/make-go-great/ioe-go v0.4.0 h1:abRH8J01am7A9VsinEG0WnXDiT1CWk7Cd0auRvWuNyQ=

View File

@ -1,8 +1,10 @@
package cli
import (
"fmt"
"log"
"github.com/make-go-great/buildinfo-go"
"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 {
return cli.ShowAppHelp(c)
}

View File

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

View File

@ -24,23 +24,25 @@ const (
flagInteractive = "interactive"
commandGenerate = "generate"
commandVersion = "version"
usageGenerate = "generate changelog"
usageVerbose = "show what is going on"
usageVersion = "`VERSION` to generate, follow Semantic Versioning"
usageFrom = "from `COMMIT`, which is kinda new commit, default is latest commit"
usageTo = "to `COMMIT`, which is kinda old commit, default is oldest commit"
usageScope = "scope to generate"
usageRepository = "`REPOSITORY` directory path"
usageOutput = "`OUTPUT` directory path"
usageFilename = "output `FILENAME`"
usageFiletype = "output `FILETYPE`"
usageDryRun = "demo run without actually changing anything"
usageInteractive = "interactive mode, default is true"
usageGenerate = "generate changelog"
usageCommandVersion = "version of changeloguru"
usageVerbose = "show what is going on"
usageFlagVersion = "`VERSION` to generate, follow Semantic Versioning"
usageFrom = "from `COMMIT`, which is kinda new commit, default is latest commit"
usageTo = "to `COMMIT`, which is kinda old commit, default is oldest commit"
usageScope = "scope to generate"
usageRepository = "`REPOSITORY` directory path"
usageOutput = "`OUTPUT` directory path"
usageFilename = "output `FILENAME`"
usageFiletype = "output `FILETYPE`"
usageDryRun = "demo run without actually changing anything"
usageInteractive = "interactive mode, default is true"
)
var (
aliasGenerate = []string{"gen"}
aliasGenerate = []string{"g, gen"}
aliasVerbose = []string{"v"}
aliasInteractive = []string{"i"}
)
@ -68,7 +70,7 @@ func NewApp() *App {
},
&cli.StringFlag{
Name: flagVersion,
Usage: usageVersion,
Usage: usageFlagVersion,
},
&cli.StringFlag{
Name: flagFrom,
@ -115,6 +117,11 @@ func NewApp() *App {
},
Action: a.RunGenerate,
},
{
Name: commandVersion,
Usage: usageCommandVersion,
Action: a.RunVersion,
},
},
Action: a.RunHelp,
}