Skip to content

Commit 5de735f

Browse files
Cesar Andresstefanhaller
Cesar Andres
authored andcommitted
feat(submodules): add method to bulk init and update submodules
1 parent 4b4d82e commit 5de735f

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

Diff for: pkg/commands/git_commands/submodule.go

+7
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,13 @@ func (self *SubmoduleCommands) ForceBulkUpdateCmdObj() oscommands.ICmdObj {
258258
return self.cmd.New(cmdArgs)
259259
}
260260

261+
func (self *SubmoduleCommands) BulkUpdateRecursivelyCmdObj() oscommands.ICmdObj {
262+
cmdArgs := NewGitCmd("submodule").Arg("update", "--init", "--recursive").
263+
ToArgv()
264+
265+
return self.cmd.New(cmdArgs)
266+
}
267+
261268
func (self *SubmoduleCommands) BulkDeinitCmdObj() oscommands.ICmdObj {
262269
cmdArgs := NewGitCmd("submodule").Arg("deinit", "--all", "--force").
263270
ToArgv()

Diff for: pkg/gui/controllers/submodules_controller.go

+14
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,20 @@ func (self *SubmodulesController) openBulkActionsMenu() error {
247247
},
248248
Key: 'u',
249249
},
250+
{
251+
LabelColumns: []string{self.c.Tr.BulkUpdateRecursiveSubmodules, style.FgYellow.Sprint(self.c.Git().Submodule.BulkUpdateRecursivelyCmdObj().ToString())},
252+
OnPress: func() error {
253+
return self.c.WithWaitingStatus(self.c.Tr.RunningCommand, func(gocui.Task) error {
254+
self.c.LogAction(self.c.Tr.Actions.BulkUpdateRecursiveSubmodules)
255+
if err := self.c.Git().Submodule.BulkUpdateRecursivelyCmdObj().Run(); err != nil {
256+
return err
257+
}
258+
259+
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.SUBMODULES}})
260+
})
261+
},
262+
Key: 'r',
263+
},
250264
{
251265
LabelColumns: []string{self.c.Tr.BulkDeinitSubmodules, style.FgRed.Sprint(self.c.Git().Submodule.BulkDeinitCmdObj().ToString())},
252266
OnPress: func() error {

Diff for: pkg/i18n/english.go

+4
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ type TranslationSet struct {
673673
BulkInitSubmodules string
674674
BulkUpdateSubmodules string
675675
BulkDeinitSubmodules string
676+
BulkUpdateRecursiveSubmodules string
676677
ViewBulkSubmoduleOptions string
677678
BulkSubmoduleOptions string
678679
RunningCommand string
@@ -982,6 +983,7 @@ type Actions struct {
982983
BulkInitialiseSubmodules string
983984
BulkUpdateSubmodules string
984985
BulkDeinitialiseSubmodules string
986+
BulkUpdateRecursiveSubmodules string
985987
UpdateSubmodule string
986988
CreateLightweightTag string
987989
CreateAnnotatedTag string
@@ -1718,6 +1720,7 @@ func EnglishTranslationSet() *TranslationSet {
17181720
BulkInitSubmodules: "Bulk init submodules",
17191721
BulkUpdateSubmodules: "Bulk update submodules",
17201722
BulkDeinitSubmodules: "Bulk deinit submodules",
1723+
BulkUpdateRecursiveSubmodules: "Bulk init and update submodules recursively",
17211724
ViewBulkSubmoduleOptions: "View bulk submodule options",
17221725
BulkSubmoduleOptions: "Bulk submodule options",
17231726
RunningCommand: "Running command",
@@ -1989,6 +1992,7 @@ func EnglishTranslationSet() *TranslationSet {
19891992
BulkInitialiseSubmodules: "Bulk initialise submodules",
19901993
BulkUpdateSubmodules: "Bulk update submodules",
19911994
BulkDeinitialiseSubmodules: "Bulk deinitialise submodules",
1995+
BulkUpdateRecursiveSubmodules: "Bulk initialise and update submodules recursively",
19921996
UpdateSubmodule: "Update submodule",
19931997
DeleteLocalTag: "Delete local tag",
19941998
DeleteRemoteTag: "Delete remote tag",

0 commit comments

Comments
 (0)