MCPcopy Create free account
hub / github.com/Melkeydev/govm / Update

Method Update

internal/model/model.go:40–239  ·  view source on GitHub ↗
(msg tea.Msg)

Source from the content-addressed store, hash-verified

38}
39
40func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
41 var cmds []tea.Cmd
42 switch msg := msg.(type) {
43 case tea.KeyMsg:
44 switch msg.String() {
45 case tea.KeyCtrlC.String(), "q":
46 return m, tea.Quit
47 case tea.KeyTab.String():
48 // Switch between tabs
49 m.CurrentTab = (m.CurrentTab + 1) % 2
50 return m, nil
51 case "i":
52 if m.CurrentTab == 0 {
53 selectedItem := m.List.SelectedItem().(styles.Item)
54 for _, v := range m.Versions {
55 if v.Version == selectedItem.Name && !v.Installed {
56 m.Loading = true
57 m.InstallingVersion = v.Version
58 m.Message = ""
59 return m, utils.DownloadAndInstall(v)
60 }
61 }
62 }
63 case "u":
64 if m.CurrentTab == 0 {
65 selectedItem := m.List.SelectedItem().(styles.Item)
66 for _, v := range m.Versions {
67 if v.Version == selectedItem.Name && v.Installed {
68 m.Loading = true
69 m.Message = fmt.Sprintf("Switching to Go %s...", v.Version)
70 return m, utils.SwitchVersion(v)
71 }
72 }
73 m.Message = "You need to install this version first. Press 'i' to install."
74 m.MessageType = "error"
75 }
76 case "r":
77 m.Loading = true
78 m.Message = ""
79 return m, utils.FetchGoVersions
80 case "d":
81 if m.CurrentTab == 0 || m.CurrentTab == 1 {
82 selectedItem := m.List.SelectedItem().(styles.Item)
83 for _, v := range m.Versions {
84 if v.Version == selectedItem.Name && v.Installed {
85 if v.Active {
86 m.Message = "Cannot delete active version. Switch to another version first."
87 m.MessageType = "error"
88 return m, nil
89 }
90
91 m.ConfirmingDelete = true
92 m.DeleteVersion = v.Version
93 m.Message = fmt.Sprintf("Are you sure you want to delete Go %s? Press Y to confirm, N to cancel.", v.Version)
94 m.MessageType = "warning"
95 return m, nil
96 }
97 }

Callers

nothing calls this directly

Calls 5

updateInstalledTableMethod · 0.95
DownloadAndInstallFunction · 0.92
SwitchVersionFunction · 0.92
DeleteVersionFunction · 0.92
GetShimPathInstructionsFunction · 0.92

Tested by

no test coverage detected