From c5e494e704d56c4934fa9514b0344d6d8c292f0e Mon Sep 17 00:00:00 2001 From: Ondrej Sika Date: Fri, 17 May 2024 15:37:35 +0200 Subject: [PATCH] feat(cmd/go_code/version_bump): Use Git binary by default, add optional go-git --- cmd/go_code/version_bump/version_bump.go | 83 +++++++++++++++++------- 1 file changed, 58 insertions(+), 25 deletions(-) diff --git a/cmd/go_code/version_bump/version_bump.go b/cmd/go_code/version_bump/version_bump.go index 2681462d..27cc08ae 100644 --- a/cmd/go_code/version_bump/version_bump.go +++ b/cmd/go_code/version_bump/version_bump.go @@ -1,10 +1,13 @@ package version_bump import ( + "log" "os" "github.com/go-git/go-git/v5" + "github.com/go-git/go-git/v5/plumbing" go_code_cmd "github.com/sikalabs/slu/cmd/go_code" + "github.com/sikalabs/slu/utils/exec_utils" "github.com/spf13/cobra" ) @@ -12,6 +15,7 @@ import ( var CmdFlagVersion string var CmdFlagNoCommit bool var CmdFlagTag bool +var CmdFlagGoGit bool var Cmd = &cobra.Command{ Use: "version-bump", @@ -32,35 +36,58 @@ var Version string = "` + CmdFlagVersion + `" return } - r, err := git.PlainOpen(".") - if err != nil { - panic(err) - } - w, err := r.Worktree() - if err != nil { - panic(err) - } - _, err = w.Add("version/version.go") - if err != nil { - panic(err) - } - commit, _ := w.Commit("VERSION: "+CmdFlagVersion, &git.CommitOptions{}) - _, err = r.CommitObject(commit) - if err != nil { - panic(err) - } + var r *git.Repository + var commit plumbing.Hash - if CmdFlagTag { - _, err := r.CreateTag( - CmdFlagVersion, - commit, - &git.CreateTagOptions{ - Message: "VERSION: " + CmdFlagVersion, - }, - ) + if !CmdFlagGoGit { + err = exec_utils.ExecOut("git", "add", "version/version.go") + if err != nil { + log.Fatalln(err) + } + err = exec_utils.ExecOut("git", "commit", "-m", "VERSION: "+CmdFlagVersion) + if err != nil { + log.Fatalln(err) + } + } else { + r, err = git.PlainOpen(".") if err != nil { panic(err) } + w, err := r.Worktree() + if err != nil { + panic(err) + } + _, err = w.Add("version/version.go") + if err != nil { + panic(err) + } + commit, _ = w.Commit("VERSION: "+CmdFlagVersion, &git.CommitOptions{}) + _, err = r.CommitObject(commit) + if err != nil { + panic(err) + } + } + + if !CmdFlagGoGit { + if CmdFlagTag { + err = exec_utils.ExecOut("git", "tag", CmdFlagVersion, "-m", "VERSION: "+CmdFlagVersion) + if err != nil { + log.Fatalln(err) + } + } + } else { + if CmdFlagTag { + _, err := r.CreateTag( + CmdFlagVersion, + commit, + &git.CreateTagOptions{ + Message: "VERSION: " + CmdFlagVersion, + }, + ) + if err != nil { + panic(err) + } + } } }, } @@ -89,4 +116,10 @@ func init() { false, "Create also git tag", ) + Cmd.Flags().BoolVar( + &CmdFlagNoCommit, + "go-git", + false, + "Use go-git instead of git binary", + ) }