Skip to content

Commit

Permalink
fix PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
kutluhanmetin committed Aug 29, 2023
1 parent 286456a commit b9a3210
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 30 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

GIT_COMMIT = $(shell git rev-parse HEAD 2> /dev/null || echo unknown)
CLC_VERSION ?= v0.0.0-CUSTOMBUILD
IS_CHECK_VERSION ?= enabled
LDFLAGS = "-s -w -X 'github.com/hazelcast/hazelcast-commandline-client/internal.GitCommit=$(GIT_COMMIT)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.Version=$(CLC_VERSION)' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientType=CLC' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientVersion=$(CLC_VERSION)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.IsCheckVersion=$(ENABLE_CHECK_VERSION)'"
CLC_SKIP_UPDATE_CHECK ?= 0
LDFLAGS = "-s -w -X 'github.com/hazelcast/hazelcast-commandline-client/internal.GitCommit=$(GIT_COMMIT)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.Version=$(CLC_VERSION)' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientType=CLC' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientVersion=$(CLC_VERSION)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.SkipUpdateCheck=$(CLC_SKIP_UPDATE_CHECK)'"
MAIN_CMD_HELP ?= Hazelcast CLC
LDFLAGS = -s -w -X 'github.com/hazelcast/hazelcast-commandline-client/clc/cmd.MainCommandShortHelp=$(MAIN_CMD_HELP)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.GitCommit=$(GIT_COMMIT)' -X 'github.com/hazelcast/hazelcast-commandline-client/internal.Version=$(CLC_VERSION)' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientType=CLC' -X 'github.com/hazelcast/hazelcast-go-client/internal.ClientVersion=$(CLC_VERSION)'
TEST_FLAGS ?= -count 1 -timeout 30m -race
Expand Down
56 changes: 35 additions & 21 deletions base/commands/update_check.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import (
"errors"
"fmt"
"os"
"path/filepath"
"strconv"
"strings"
"time"

"github.com/hazelcast/hazelcast-commandline-client/clc/paths"
"github.com/hazelcast/hazelcast-commandline-client/clc/store"
"github.com/hazelcast/hazelcast-commandline-client/internal"
. "github.com/hazelcast/hazelcast-commandline-client/internal/check"
"github.com/hazelcast/hazelcast-commandline-client/internal/plug"
)

Expand All @@ -25,40 +25,50 @@ https://github.com/hazelcast/hazelcast-commandline-client/releases/%s
`

const updateCheckKey = "update.nextCheckTime"

const checkInterval = time.Hour * 24 * 7
const (
updateCheckKey = "update.nextCheckTime"
updateVersionKey = "update.latestVersion"
checkInterval = time.Hour * 24 * 7
)

func maybePrintNewerVersion(ec plug.ExecContext) error {
sa := store.NewStoreAccessor(paths.Store(), ec.Logger())
isSkip, err := isSkipNewerVersion(sa)
if err != nil {
return err
}
if isSkip {
return nil
}
v, err := internal.LatestReleaseVersion()
sa := store.NewStoreAccessor(filepath.Join(paths.Caches(), "version_update"), ec.Logger())
shouldSkip, err := shouldSkipNewerVersion(sa)
if err != nil {
return err
}
if v != "" && internal.CheckVersion(trimVersion(v), ">", trimVersion(internal.Version)) {
I2(fmt.Fprintf(ec.Stdout(), newVersionWarning, v))
var latest string
if shouldSkip {
v, err := sa.WithLock(func(s *store.Store) (any, error) {
return s.GetEntry([]byte(updateVersionKey))
})
if err != nil {
return err
}
latest = string(v.([]byte))
} else {
latest, err = internal.LatestReleaseVersion()
if err != nil {
return err
}
if err = updateVersionAndNextCheckTime(sa, latest); err != nil {
return err
}
}
if err = updateNextCheckTime(sa); err != nil {
return err
if latest != "" && internal.CheckVersion(trimVersion(latest), ">", trimVersion(internal.Version)) {
ec.PrintlnUnnecessary(fmt.Sprintf(newVersionWarning, latest))
}
return nil
}

func isSkipNewerVersion(sa *store.StoreAccessor) (bool, error) {
func shouldSkipNewerVersion(sa *store.StoreAccessor) (bool, error) {
if internal.Version == internal.UnknownVersion {
return true, nil
}
if strings.Contains(internal.Version, internal.CustomBuildSuffix) {
return true, nil
}
if internal.IsCheckVersion == "disabled" {
if internal.SkipUpdateCheck == "1" {
return true, nil
}
if os.Getenv(skipUpdateCheck) == "1" {
Expand Down Expand Up @@ -89,10 +99,14 @@ func trimVersion(v string) string {
return strings.TrimPrefix(strings.Split(v, "-")[0], "v")
}

func updateNextCheckTime(sa *store.StoreAccessor) error {
func updateVersionAndNextCheckTime(sa *store.StoreAccessor, v string) error {
_, err := sa.WithLock(func(s *store.Store) (any, error) {
return nil, s.SetEntry([]byte(updateCheckKey),
err := s.SetEntry([]byte(updateCheckKey),
[]byte(strconv.FormatInt(time.Now().Add(checkInterval).Unix(), 10)))
if err != nil {
return nil, err
}
return nil, s.SetEntry([]byte(updateVersionKey), []byte(v))
})
return err
}
4 changes: 0 additions & 4 deletions clc/paths/paths.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@ func Templates() string {
return filepath.Join(Home(), "templates")
}

func Store() string {
return filepath.Join(Home(), "store")
}

func Caches() string {
return filepath.Join(Home(), "caches")
}
Expand Down
4 changes: 4 additions & 0 deletions docs/modules/ROOT/pages/environment-variables.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ The following environment variables are experimental and may be removed in a fut
|Disables color output if set to `1`.
|`0` (false)

|CLC_SKIP_UPDATE_CHECK
|Disables checking new version of CLC.
|`0` (false)

|===


Expand Down
6 changes: 3 additions & 3 deletions internal/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ const CustomBuildSuffix = "CUSTOMBUILD"

// being initialized at compile-time.
var (
GitCommit string
Version = UnknownVersion
IsCheckVersion = "disabled"
GitCommit string
Version = UnknownVersion
SkipUpdateCheck = "0"
)

// CheckVersion checks whether left OP right condition holds.
Expand Down

0 comments on commit b9a3210

Please sign in to comment.