Skip to content

Commit

Permalink
chore: add version command
Browse files Browse the repository at this point in the history
  • Loading branch information
LucaLanziani committed Oct 16, 2023
1 parent a4a20f1 commit a90465c
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
10 changes: 9 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,16 @@ import (
//go:embed assets
var resources embed.FS

// Based on https://goreleaser.com/cookbooks/using-main.version/
// The values will be set at release time by the github action
var (
version = "dev"
commit = "none"
date = "unknown"
)

func main() {
icli := cli.New(resources)
icli := cli.New(resources, cli.Release{Version: version, Commit: commit, Date: date})

if err := icli.Run(os.Args); err != nil {
log.Fatal(err)
Expand Down
22 changes: 20 additions & 2 deletions src/cli/cli.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cli

import (
"fmt"
"io"
"io/fs"

Expand All @@ -18,6 +19,12 @@ import (
"github.com/urfave/cli/v2"
)

type Release struct {
Version string
Commit string
Date string
}

type icli struct {
Resources fs.FS
CWD string
Expand All @@ -27,18 +34,20 @@ type icli struct {
dockerImage docker.DockerImage
flags flags
Writer io.Writer
release Release
}

func NewWithOptions(resources fs.FS, logger *log.Logger, writer io.Writer) icli {
func NewWithOptions(resources fs.FS, logger *log.Logger, writer io.Writer, release Release) icli {
return icli{
Resources: resources,
Logger: logger,
Writer: writer,
flags: InitFlags(),
release: release,
}
}

func New(resources fs.FS) icli {
func New(resources fs.FS, release Release) icli {
return NewWithOptions(
resources,
log.NewWithOptions(os.Stderr, log.Options{
Expand All @@ -47,6 +56,7 @@ func New(resources fs.FS) icli {
ReportTimestamp: true,
}),
os.Stdout,
release,
)
}

Expand Down Expand Up @@ -139,6 +149,14 @@ func (c icli) Run(args []string) error {
c.OnBranchCMD(),
c.TemplateCMD(),
c.InitCMD(),
{
Name: "version",
Usage: "Return the version of the cli",
Action: func(ctx *cli.Context) error {
_, err := fmt.Printf("version %s, commit %s, built at %s\n", c.release.Version, c.release.Commit, c.release.Date)
return err
},
},
},
Before: func(ctx *cli.Context) error {
if err := c.loadFlagsFromConfig(ctx); err != nil {
Expand Down

0 comments on commit a90465c

Please sign in to comment.