feat(submodules): add method to bulk init and update submodules

This commit is contained in:
Cesar Andres 2025-02-13 13:54:14 +01:00 committed by Stefan Haller
parent 4b4d82e13c
commit 5de735f1ac
3 changed files with 25 additions and 0 deletions

View file

@ -258,6 +258,13 @@ func (self *SubmoduleCommands) ForceBulkUpdateCmdObj() oscommands.ICmdObj {
return self.cmd.New(cmdArgs)
}
func (self *SubmoduleCommands) BulkUpdateRecursivelyCmdObj() oscommands.ICmdObj {
cmdArgs := NewGitCmd("submodule").Arg("update", "--init", "--recursive").
ToArgv()
return self.cmd.New(cmdArgs)
}
func (self *SubmoduleCommands) BulkDeinitCmdObj() oscommands.ICmdObj {
cmdArgs := NewGitCmd("submodule").Arg("deinit", "--all", "--force").
ToArgv()

View file

@ -247,6 +247,20 @@ func (self *SubmodulesController) openBulkActionsMenu() error {
},
Key: 'u',
},
{
LabelColumns: []string{self.c.Tr.BulkUpdateRecursiveSubmodules, style.FgYellow.Sprint(self.c.Git().Submodule.BulkUpdateRecursivelyCmdObj().ToString())},
OnPress: func() error {
return self.c.WithWaitingStatus(self.c.Tr.RunningCommand, func(gocui.Task) error {
self.c.LogAction(self.c.Tr.Actions.BulkUpdateRecursiveSubmodules)
if err := self.c.Git().Submodule.BulkUpdateRecursivelyCmdObj().Run(); err != nil {
return err
}
return self.c.Refresh(types.RefreshOptions{Scope: []types.RefreshableView{types.SUBMODULES}})
})
},
Key: 'r',
},
{
LabelColumns: []string{self.c.Tr.BulkDeinitSubmodules, style.FgRed.Sprint(self.c.Git().Submodule.BulkDeinitCmdObj().ToString())},
OnPress: func() error {

View file

@ -673,6 +673,7 @@ type TranslationSet struct {
BulkInitSubmodules string
BulkUpdateSubmodules string
BulkDeinitSubmodules string
BulkUpdateRecursiveSubmodules string
ViewBulkSubmoduleOptions string
BulkSubmoduleOptions string
RunningCommand string
@ -982,6 +983,7 @@ type Actions struct {
BulkInitialiseSubmodules string
BulkUpdateSubmodules string
BulkDeinitialiseSubmodules string
BulkUpdateRecursiveSubmodules string
UpdateSubmodule string
CreateLightweightTag string
CreateAnnotatedTag string
@ -1718,6 +1720,7 @@ func EnglishTranslationSet() *TranslationSet {
BulkInitSubmodules: "Bulk init submodules",
BulkUpdateSubmodules: "Bulk update submodules",
BulkDeinitSubmodules: "Bulk deinit submodules",
BulkUpdateRecursiveSubmodules: "Bulk init and update submodules recursively",
ViewBulkSubmoduleOptions: "View bulk submodule options",
BulkSubmoduleOptions: "Bulk submodule options",
RunningCommand: "Running command",
@ -1989,6 +1992,7 @@ func EnglishTranslationSet() *TranslationSet {
BulkInitialiseSubmodules: "Bulk initialise submodules",
BulkUpdateSubmodules: "Bulk update submodules",
BulkDeinitialiseSubmodules: "Bulk deinitialise submodules",
BulkUpdateRecursiveSubmodules: "Bulk initialise and update submodules recursively",
UpdateSubmodule: "Update submodule",
DeleteLocalTag: "Delete local tag",
DeleteRemoteTag: "Delete remote tag",