Skip to content

Commit

Permalink
Merge pull request #47 from Slug-Boi/feat_add_update_command
Browse files Browse the repository at this point in the history
  • Loading branch information
Slug-Boi authored Dec 1, 2024
2 parents 5f7365c + 22db51a commit 0f2a002
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 9 deletions.
7 changes: 5 additions & 2 deletions ci/build_test_release.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ func main() {

buildDir := test.Directory("/src_d/src/")

Coco_var := os.Getenv("Coco_Version")


for _, goos := range geese {
path := fmt.Sprintf("/dist/")
filename := fmt.Sprintf("/dist/cocommit-%s", goos)
Expand All @@ -50,7 +53,7 @@ func main() {
build := test.
WithEnvVariable("GOOS", goos).
WithEnvVariable("GOARCH", goarch).
WithExec([]string{"go", "build", "-o", filename}).WithEnvVariable("CI", "true")
WithExec([]string{"go", "build", "-o", filename, "-ldflags", "-X github.com/Slug-Boi/cocommit/src/cmd.Coco_Version="+Coco_var}).WithEnvVariable("CI", "true")

buildDir = buildDir.WithDirectory(path, build.Directory(path))

Expand All @@ -63,7 +66,7 @@ func main() {
build := test.
WithEnvVariable("GOOS", "darwin").
WithEnvVariable("GOARCH", "arm64").
WithExec([]string{"go", "build", "-o", filename}).WithEnvVariable("CI", "true")
WithExec([]string{"go", "build", "-o", filename, "-ldflags", "-X github.com/Slug-Boi/cocommit/src/cmd.Coco_Version="+Coco_var}).WithEnvVariable("CI", "true")

buildDir = buildDir.WithDirectory(path, build.Directory(path))

Expand Down
14 changes: 12 additions & 2 deletions src/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import (
"github.com/spf13/cobra"
)

// Variables lives in here in case of possible future check of updates on running the CLI
var Coco_Version string

// rootCmd represents the base command when called without any subcommands
// func RootCmd() *cobra.Command {
var rootCmd = &cobra.Command{
Expand All @@ -34,8 +37,14 @@ var rootCmd = &cobra.Command{
pflag, _ := cmd.Flags().GetBool("print")
tflag, _ := cmd.Flags().GetBool("test_print")
aflag, _ := cmd.Flags().GetBool("authors")
gflag, _ := cmd.Flags().GetString("git")

vflag, _ := cmd.Flags().GetBool("version")
gflag, _ := cmd.Flags().GetString("git")

if vflag {
fmt.Println("Cocommit version:", Coco_Version)
os.Exit(0)
}

var git_flags []string
// runs the git commit command
if gflag != "" {
Expand Down Expand Up @@ -121,5 +130,6 @@ func init() {
rootCmd.Flags().BoolP("test_print", "t", false, "Prints the commit message to the console without running the git commit command")
rootCmd.Flags().BoolP("message", "m", false, "Does nothing but allows for -m to be used in the command")
rootCmd.Flags().BoolP("authors", "a", false, "Runs the author list TUI")
rootCmd.Flags().BoolP("version", "v", false, "Prints the version of the cocommit cli tool")
rootCmd.Flags().StringP("git", "g", "", "Adds the given flags to the git command")
}
35 changes: 34 additions & 1 deletion src/cmd/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cmd
import (
"archive/tar"
"compress/gzip"
"encoding/json"
"fmt"
"io"
"log"
Expand All @@ -17,6 +18,11 @@ import (
"github.com/spf13/cobra"
)


type github_release struct {
TagName string `json:"tag_name"`
}

// updateCmd represents the update command
var updateCmd = &cobra.Command{
Use: "update",
Expand All @@ -25,6 +31,33 @@ var updateCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
gflag, _ := cmd.Flags().GetBool("go-get")

// check version of the cli tool
Github, err := http.Get("https://api.github.com/repos/Slug-Boi/cocommit/releases/latest")
if err != nil {
fmt.Println("Error getting latest release version")
fmt.Println("Would you still like to update? (y/n)")
var input string
fmt.Scanln(&input)
if input == "y" || input == "Y" || input == "yes" {
fmt.Println("Running update script to update cocommit cli tool")
} else {
fmt.Println("Update cancelled")
return
}
}
defer Github.Body.Close()

var release github_release
err = json.NewDecoder(Github.Body).Decode(&release)
if err != nil {
panic("Error decoding json")
}

if release.TagName == Coco_Version {
fmt.Println("Cocommit cli tool is already up to date")
return
}

if gflag {
fmt.Println("Running go get command to update cocommit cli tool")
cmd := exec.Command("go", "get", "-u", "github.com/Slug-Boi/cocommit")
Expand All @@ -34,7 +67,7 @@ var updateCmd = &cobra.Command{
}
fmt.Println("Cocommit cli tool updated successfully")
} else {
fmt.Println("Running update script to update cocommit cli tool")
fmt.Println("Running binary replace to update cocommit cli tool")
updateScript()
}

Expand Down
4 changes: 0 additions & 4 deletions src/main.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
/*
Copyright © 2024 NAME HERE <EMAIL ADDRESS>
*/
package main

import "github.com/Slug-Boi/cocommit/src/cmd"
Expand Down

0 comments on commit 0f2a002

Please sign in to comment.