Skip to content

Commit 00bacc5

Browse files
Cesar Andrescesarandr
authored andcommitted
feat(submodules): add method to bulk init and update submodules
1 parent 853a04d commit 00bacc5

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

pkg/commands/git_commands/submodule.go

Lines changed: 7 additions & 0 deletions
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()

pkg/gui/controllers/submodules_controller.go

Lines changed: 14 additions & 0 deletions
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 {

pkg/i18n/english.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ type TranslationSet struct {
669669
BulkInitSubmodules string
670670
BulkUpdateSubmodules string
671671
BulkDeinitSubmodules string
672+
BulkUpdateRecursiveSubmodules string
672673
ViewBulkSubmoduleOptions string
673674
BulkSubmoduleOptions string
674675
RunningCommand string
@@ -972,6 +973,7 @@ type Actions struct {
972973
BulkInitialiseSubmodules string
973974
BulkUpdateSubmodules string
974975
BulkDeinitialiseSubmodules string
976+
BulkUpdateRecursiveSubmodules string
975977
UpdateSubmodule string
976978
CreateLightweightTag string
977979
CreateAnnotatedTag string
@@ -1702,6 +1704,7 @@ func EnglishTranslationSet() *TranslationSet {
17021704
BulkInitSubmodules: "Bulk init submodules",
17031705
BulkUpdateSubmodules: "Bulk update submodules",
17041706
BulkDeinitSubmodules: "Bulk deinit submodules",
1707+
BulkUpdateRecursiveSubmodules: "Bulk init and update submodules recursively",
17051708
ViewBulkSubmoduleOptions: "View bulk submodule options",
17061709
BulkSubmoduleOptions: "Bulk submodule options",
17071710
RunningCommand: "Running command",
@@ -1967,6 +1970,7 @@ func EnglishTranslationSet() *TranslationSet {
19671970
BulkInitialiseSubmodules: "Bulk initialise submodules",
19681971
BulkUpdateSubmodules: "Bulk update submodules",
19691972
BulkDeinitialiseSubmodules: "Bulk deinitialise submodules",
1973+
BulkUpdateRecursiveSubmodules: "Bulk initialise and update submodules recursively",
19701974
UpdateSubmodule: "Update submodule",
19711975
DeleteLocalTag: "Delete local tag",
19721976
DeleteRemoteTag: "Delete remote tag",

0 commit comments

Comments
 (0)