From 343e660e8e221b98a31b32da900a56557e776b77 Mon Sep 17 00:00:00 2001 From: Nightapes Date: Tue, 18 Feb 2020 19:19:09 +0100 Subject: [PATCH] feat(cli): add current version command --- README.md | 3 +- cmd/go-semantic-release/commands/last.go | 58 ++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 cmd/go-semantic-release/commands/last.go diff --git a/README.md b/README.md index c07b2c8..fd5c88e 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,8 @@ following command: Print the next version, can be used to add version to your program ```bash -./go-semantic-release next +./go-semantic-release next // show next version (calculated by new commits since last version) +./go-semantic-release last // show last released version ``` Example with go-lang diff --git a/cmd/go-semantic-release/commands/last.go b/cmd/go-semantic-release/commands/last.go new file mode 100644 index 0000000..e69f65f --- /dev/null +++ b/cmd/go-semantic-release/commands/last.go @@ -0,0 +1,58 @@ +package commands + +import ( + "fmt" + "github.com/Nightapes/go-semantic-release/pkg/semanticrelease" + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" +) + +func init() { + rootCmd.AddCommand(lastCmd) +} + +var lastCmd = &cobra.Command{ + Use: "last", + Short: "Get last version", + RunE: func(cmd *cobra.Command, args []string) error { + config, err := cmd.Flags().GetString("config") + if err != nil { + return err + } + + repository, err := cmd.Flags().GetString("repository") + if err != nil { + return err + } + + force, err := cmd.Flags().GetBool("no-cache") + if err != nil { + return err + } + + ignoreConfigChecks, err := cmd.Flags().GetBool("no-checks") + if err != nil { + return err + } + + s, err := semanticrelease.New(readConfig(config), repository, !ignoreConfigChecks) + if err != nil { + return err + } + + provider, err := s.GetCIProvider() + + if err != nil { + log.Infof("Will not calculate version, set fake version. Could not find CI Provider, if running locally, set env CI=true") + fmt.Println("0.0.0-fake.0") + return nil + } + + releaseVersion, err := s.GetNextVersion(provider, force) + if err != nil { + return err + } + fmt.Println(releaseVersion.Last.Version.String()) + return nil + }, +}