summaryrefslogtreecommitdiffstats
path: root/pkg/gui/submodules_panel.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2020-10-01 22:13:32 +1000
committerJesse Duffield <jessedduffield@gmail.com>2020-10-02 08:09:42 +1000
commit2dc848506cb465cd46006b4a2a6dca2bdc5cf89d (patch)
tree58ea3cbafe116ced5bd7fbf7197c6cecc6ac0db8 /pkg/gui/submodules_panel.go
parent9125e3c0c6f9c2f83ba74f33b5899054b8641218 (diff)
bulk submodule menu
Diffstat (limited to 'pkg/gui/submodules_panel.go')
-rw-r--r--pkg/gui/submodules_panel.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/pkg/gui/submodules_panel.go b/pkg/gui/submodules_panel.go
index c620efbbe..9e7b89a08 100644
--- a/pkg/gui/submodules_panel.go
+++ b/pkg/gui/submodules_panel.go
@@ -194,6 +194,61 @@ func (gui *Gui) handleResetRemoveSubmodule(submodule *models.SubmoduleConfig) er
return gui.createMenu(submodule.Name, menuItems, createMenuOptions{showCancel: true})
}
+func (gui *Gui) handleBulkSubmoduleActionsMenu() error {
+ menuItems := []*menuItem{
+ {
+ displayStrings: []string{gui.Tr.SLocalize("bulkInitSubmodules"), utils.ColoredString(gui.GitCommand.SubmoduleBulkInitCmdStr(), color.FgGreen)},
+ onPress: func() error {
+ return gui.WithWaitingStatus(gui.Tr.SLocalize("runningCommand"), func() error {
+ if err := gui.OSCommand.RunCommand(gui.GitCommand.SubmoduleBulkInitCmdStr()); err != nil {
+ return gui.surfaceError(err)
+ }
+
+ return gui.refreshSidePanels(refreshOptions{scope: []int{SUBMODULES}})
+ })
+ },
+ },
+ {
+ displayStrings: []string{gui.Tr.SLocalize("bulkUpdateSubmodules"), utils.ColoredString(gui.GitCommand.SubmoduleBulkUpdateCmdStr(), color.FgYellow)},
+ onPress: func() error {
+ return gui.WithWaitingStatus(gui.Tr.SLocalize("runningCommand"), func() error {
+ if err := gui.OSCommand.RunCommand(gui.GitCommand.SubmoduleBulkUpdateCmdStr()); err != nil {
+ return gui.surfaceError(err)
+ }
+
+ return gui.refreshSidePanels(refreshOptions{scope: []int{SUBMODULES}})
+ })
+ },
+ },
+ {
+ displayStrings: []string{gui.Tr.SLocalize("submoduleStashAndReset"), utils.ColoredString(fmt.Sprintf("git stash in each submodule && %s", gui.GitCommand.SubmoduleForceBulkUpdateCmdStr()), color.FgRed)},
+ onPress: func() error {
+ return gui.WithWaitingStatus(gui.Tr.SLocalize("runningCommand"), func() error {
+ if err := gui.GitCommand.ResetSubmodules(gui.State.Submodules); err != nil {
+ return gui.surfaceError(err)
+ }
+
+ return gui.refreshSidePanels(refreshOptions{scope: []int{SUBMODULES}})
+ })
+ },
+ },
+ {
+ displayStrings: []string{gui.Tr.SLocalize("bulkDeinitSubmodules"), utils.ColoredString(gui.GitCommand.SubmoduleBulkDeinitCmdStr(), color.FgRed)},
+ onPress: func() error {
+ return gui.WithWaitingStatus(gui.Tr.SLocalize("runningCommand"), func() error {
+ if err := gui.OSCommand.RunCommand(gui.GitCommand.SubmoduleBulkDeinitCmdStr()); err != nil {
+ return gui.surfaceError(err)
+ }
+
+ return gui.refreshSidePanels(refreshOptions{scope: []int{SUBMODULES}})
+ })
+ },
+ },
+ }
+
+ return gui.createMenu(gui.Tr.SLocalize("bulkSubmoduleOptions"), menuItems, createMenuOptions{showCancel: true})
+}
+
func (gui *Gui) handleUpdateSubmodule(submodule *models.SubmoduleConfig) error {
return gui.WithWaitingStatus(gui.Tr.SLocalize("updatingSubmoduleStatus"), func() error {
err := gui.GitCommand.SubmoduleUpdate(submodule.Path)