on main help sign in
style: small code style updates
fb7d5b6Andrey Nering
internal/app/app.go+1
@@ -400,6 +400,7 @@ func (app *App) Shutdown() {
400func (app *App) checkForUpdates(ctx context.Context) {
400func (app *App) checkForUpdates(ctx context.Context) {
401 checkCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
401 checkCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
402 defer cancel()
402 defer cancel()
403+
403 info, err := update.Check(checkCtx, version.Version, update.Default)
404 info, err := update.Check(checkCtx, version.Version, update.Default)
404 if err != nil || !info.Available() {
405 if err != nil || !info.Available() {
405 return
406 return
internal/update/update.go+7−9
@@ -11,7 +11,7 @@ import (
11)
11)
12
12
13const (
13const (
14− githubAPIURL = "https://api.github.com/repos/charmbracelet/crush/releases/latest"
14+ githubApiUrl = "https://api.github.com/repos/charmbracelet/crush/releases/latest"
15 userAgent = "crush/1.0"
15 userAgent = "crush/1.0"
16)
16)
17
17
@@ -34,13 +34,11 @@ type Info struct {
34func (i Info) Available() bool {
34func (i Info) Available() bool {
35 cpr := strings.Contains(i.Current, "-")
35 cpr := strings.Contains(i.Current, "-")
36 lpr := strings.Contains(i.Latest, "-")
36 lpr := strings.Contains(i.Latest, "-")
37− // current is pre release
38− if cpr {
39− // latest isn't a prerelease
37+ // current is pre release && latest isn't a prerelease
40− if !lpr {
38+ if cpr && !lpr {
41− return true
39+ return true
42− }
43 }
40 }
41+ // latest is pre release && current isn't a prerelease
44 if lpr && !cpr {
42 if lpr && !cpr {
45 return false
43 return false
46 }
44 }
@@ -88,7 +86,7 @@ func (c *github) Latest(ctx context.Context) (*Release, error) {
88 Timeout: 30 * time.Second,
86 Timeout: 30 * time.Second,
89 }
87 }
90
88
91− req, err := http.NewRequestWithContext(ctx, "GET", githubAPIURL, nil)
89+ req, err := http.NewRequestWithContext(ctx, "GET", githubApiUrl, nil)
92 if err != nil {
90 if err != nil {
93 return nil, err
91 return nil, err
94 }
92 }
@@ -103,7 +101,7 @@ func (c *github) Latest(ctx context.Context) (*Release, error) {
103
101
104 if resp.StatusCode != http.StatusOK {
102 if resp.StatusCode != http.StatusOK {
105 body, _ := io.ReadAll(resp.Body)
103 body, _ := io.ReadAll(resp.Body)
106− return nil, fmt.Errorf("GitHub API returned status %d: %s", resp.StatusCode, string(body))
104+ return nil, fmt.Errorf("github api returned status %d: %s", resp.StatusCode, string(body))
107 }
105 }
108
106
109 var release Release
107 var release Release
internal/update/update_test.go+2
@@ -28,12 +28,14 @@ func TestCheckForUpdate_Beta(t *testing.T) {
28 require.NotNil(t, info)
28 require.NotNil(t, info)
29 require.False(t, info.Available())
29 require.False(t, info.Available())
30 })
30 })
31+
31 t.Run("current is also beta", func(t *testing.T) {
32 t.Run("current is also beta", func(t *testing.T) {
32 info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0-beta.2"})
33 info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0-beta.2"})
33 require.NoError(t, err)
34 require.NoError(t, err)
34 require.NotNil(t, info)
35 require.NotNil(t, info)
35 require.True(t, info.Available())
36 require.True(t, info.Available())
36 })
37 })
38+
37 t.Run("current is beta, latest isn't", func(t *testing.T) {
39 t.Run("current is beta, latest isn't", func(t *testing.T) {
38 info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0"})
40 info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0"})
39 require.NoError(t, err)
41 require.NoError(t, err)