Skip to content

Commit 6cfa225

Browse files
committed
update
1 parent 6966680 commit 6cfa225

File tree

6 files changed

+88
-67
lines changed

6 files changed

+88
-67
lines changed

Taskfile.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@ vars:
88
tasks:
99
default: go run ./...
1010
install: go install ./...
11+
test:
12+
cmds:
13+
- go build -tags "fake" -o modup-test .
14+
- defer: rm modup-test
15+
- ./modup-test

internal/tui/cmd_prod.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//go:build !fake
2+
3+
package tui
4+
5+
import (
6+
tea "github.com/charmbracelet/bubbletea"
7+
8+
"github.com/chaindead/modup/internal/deps"
9+
)
10+
11+
func getPkgInfo(pkg string) tea.Cmd {
12+
return func() tea.Msg {
13+
mod, err := deps.GetModuleInfo(pkg)
14+
return getPackageInfoMsg{mod, err}
15+
}
16+
}
17+
18+
func upgradeModule(mod deps.Module) tea.Cmd {
19+
return func() tea.Msg {
20+
err := deps.Upgrade(mod)
21+
return upgradeModuleResultMsg{mod: mod, err: err}
22+
}
23+
}
24+
25+
func getPackageList() tea.Cmd {
26+
return func() tea.Msg {
27+
pkgs, err := deps.ListAllModulePaths()
28+
return getPackageListMsg{pkgs, err}
29+
}
30+
}

internal/tui/cmd_tst.go

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1+
//go:build fake
2+
13
package tui
24

35
import (
6+
"fmt"
47
"math/rand"
58
"time"
69

710
"github.com/Masterminds/semver/v3"
8-
"github.com/spf13/pflag"
11+
tea "github.com/charmbracelet/bubbletea"
912

1013
"github.com/chaindead/modup/internal/deps"
1114
)
@@ -17,8 +20,6 @@ func randomTestDelay() time.Duration {
1720
}
1821

1922
var (
20-
test = pflag.Bool("test", false, "fake run")
21-
2223
fakeDeps = map[string]deps.Module{
2324
"github.com/gin-gonic/gin": {
2425
Path: "github.com/gin-gonic/gin",
@@ -462,3 +463,38 @@ func mustParseVersion(v string) *semver.Version {
462463
}
463464
return ver
464465
}
466+
467+
func getPkgInfo(pkg string) tea.Cmd {
468+
return func() tea.Msg {
469+
time.Sleep(randomTestDelay())
470+
471+
if mod, exists := fakeDeps[pkg]; exists {
472+
return getPackageInfoMsg{mod, nil}
473+
}
474+
return getPackageInfoMsg{deps.Module{Path: pkg}, nil}
475+
}
476+
}
477+
478+
func upgradeModule(mod deps.Module) tea.Cmd {
479+
return func() tea.Msg {
480+
time.Sleep(randomTestDelay())
481+
// 10% simulated failure
482+
r := rand.New(rand.NewSource(time.Now().UnixNano()))
483+
if r.Float64() < 0.10 {
484+
return upgradeModuleResultMsg{mod: mod, err: fmt.Errorf("simulated upgrade error")}
485+
}
486+
return upgradeModuleResultMsg{mod: mod, err: nil}
487+
}
488+
}
489+
490+
func getPackageList() tea.Cmd {
491+
time.Sleep(randomTestDelay())
492+
493+
return func() tea.Msg {
494+
packages := make([]string, 0, len(fakeDeps))
495+
for pkg := range fakeDeps {
496+
packages = append(packages, pkg)
497+
}
498+
return getPackageListMsg{packages, nil}
499+
}
500+
}

internal/tui/cmds.go

Lines changed: 7 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
//go:build !test
2+
13
package tui
24

35
import (
4-
"fmt"
5-
"math/rand"
66
"time"
77

88
tea "github.com/charmbracelet/bubbletea"
@@ -15,44 +15,14 @@ type getPackageListMsg struct {
1515
err error
1616
}
1717

18-
func getPackageList() tea.Cmd {
19-
if *test {
20-
time.Sleep(randomTestDelay())
21-
22-
return func() tea.Msg {
23-
packages := make([]string, 0, len(fakeDeps))
24-
for pkg := range fakeDeps {
25-
packages = append(packages, pkg)
26-
}
27-
return getPackageListMsg{packages, nil}
28-
}
29-
}
30-
31-
return func() tea.Msg {
32-
pkgs, err := deps.ListAllModulePaths()
33-
return getPackageListMsg{pkgs, err}
34-
}
35-
}
36-
3718
type getPackageInfoMsg struct {
3819
mod deps.Module
3920
err error
4021
}
4122

42-
func getPkgInfo(pkg string) tea.Cmd {
43-
return func() tea.Msg {
44-
if *test {
45-
time.Sleep(randomTestDelay())
46-
47-
if mod, exists := fakeDeps[pkg]; exists {
48-
return getPackageInfoMsg{mod, nil}
49-
}
50-
return getPackageInfoMsg{deps.Module{Path: pkg}, nil}
51-
}
52-
53-
mod, err := deps.GetModuleInfo(pkg)
54-
return getPackageInfoMsg{mod, err}
55-
}
23+
type upgradeModuleResultMsg struct {
24+
mod deps.Module
25+
err error
5626
}
5727

5828
type changeModeListMsg bool
@@ -67,26 +37,8 @@ type beginUpgradeMsg struct {
6737
modules []deps.Module
6838
}
6939

70-
type upgradeModuleResultMsg struct {
71-
mod deps.Module
72-
err error
73-
}
74-
75-
func upgradeModule(mod deps.Module) tea.Cmd {
76-
return func() tea.Msg {
77-
if *test {
78-
time.Sleep(randomTestDelay())
79-
// 10% simulated failure
80-
r := rand.New(rand.NewSource(time.Now().UnixNano()))
81-
if r.Float64() < 0.10 {
82-
return upgradeModuleResultMsg{mod: mod, err: fmt.Errorf("simulated upgrade error")}
83-
}
84-
return upgradeModuleResultMsg{mod: mod, err: nil}
85-
}
86-
87-
err := deps.Upgrade(mod)
88-
return upgradeModuleResultMsg{mod: mod, err: err}
89-
}
40+
func beginUpgradeCmd(selected []deps.Module) tea.Cmd {
41+
return func() tea.Msg { return beginUpgradeMsg{modules: selected} }
9042
}
9143

9244
type moduleStartedMsg struct{}

internal/tui/update_list.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func newItemDelegate(keys *listKeyMap) list.DefaultDelegate {
109109
item := m.Items()[idx]
110110
newItem := listItemSetSelected(item, !listItemSelected(item))
111111
setCmd := m.SetItem(idx, newItem)
112-
statusCmd := m.NewStatusMessage(statusMessageStyle("Toggled " + newItem.(listModuleItem).Module.Path))
112+
statusCmd := m.NewStatusMessage(statusMessageStyle("Selected " + newItem.(listModuleItem).Module.Path))
113113
return tea.Batch(setCmd, statusCmd)
114114
}
115115

@@ -154,7 +154,11 @@ func newItemDelegate(keys *listKeyMap) list.DefaultDelegate {
154154
}
155155
}
156156

157-
return func() tea.Msg { return beginUpgradeMsg{modules: selected} }
157+
if len(selected) == 0 {
158+
return m.NewStatusMessage(statusMessageStyle("No packages selected to update"))
159+
}
160+
161+
return beginUpgradeCmd(selected)
158162
}
159163
}
160164

main.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,7 @@ import (
77
tea "github.com/charmbracelet/bubbletea"
88
"github.com/spf13/pflag"
99

10-
tui "github.com/chaindead/modup/internal/tui"
11-
)
12-
13-
var (
14-
version = "dev"
15-
commit = "none"
16-
date = "unknown"
10+
"github.com/chaindead/modup/internal/tui"
1711
)
1812

1913
func main() {

0 commit comments

Comments
 (0)