1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-02-03 13:21:56 +02:00
lazygit/pkg/gui/submodules_panel.go

70 lines
1.6 KiB
Go
Raw Normal View History

2020-09-30 08:27:23 +10:00
package gui
import (
"fmt"
"os"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/style"
2020-09-30 08:27:23 +10:00
)
func (gui *Gui) getSelectedSubmodule() *models.SubmoduleConfig {
selectedLine := gui.State.Panels.Submodules.SelectedLineIdx
if selectedLine == -1 || len(gui.State.Submodules) == 0 {
return nil
}
return gui.State.Submodules[selectedLine]
}
func (gui *Gui) submodulesRenderToMain() error {
2020-09-30 08:27:23 +10:00
var task updateTask
submodule := gui.getSelectedSubmodule()
if submodule == nil {
2021-04-04 23:51:59 +10:00
task = NewRenderStringTask("No submodules")
2020-09-30 08:27:23 +10:00
} else {
prefix := fmt.Sprintf(
"Name: %s\nPath: %s\nUrl: %s\n\n",
style.FgGreen.Sprint(submodule.Name),
style.FgYellow.Sprint(submodule.Path),
style.FgCyan.Sprint(submodule.Url),
2020-09-30 08:27:23 +10:00
)
file := gui.workingTreeHelper.FileForSubmodule(submodule)
if file == nil {
2021-04-04 23:51:59 +10:00
task = NewRenderStringTask(prefix)
} else {
cmdObj := gui.git.WorkingTree.WorktreeFileDiffCmdObj(file, false, !file.HasUnstagedChanges && file.HasStagedChanges, gui.IgnoreWhitespaceInDiffView)
2021-12-07 21:59:36 +11:00
task = NewRunCommandTaskWithPrefix(cmdObj.GetCmd(), prefix)
}
2020-09-30 08:27:23 +10:00
}
return gui.refreshMainViews(refreshMainOpts{
main: &viewUpdateOpts{
title: "Submodule",
task: task,
},
})
}
func (gui *Gui) refreshStateSubmoduleConfigs() error {
configs, err := gui.git.Submodule.GetConfigs()
if err != nil {
return err
2020-09-30 08:27:23 +10:00
}
gui.State.Submodules = configs
return nil
}
2020-09-30 08:27:23 +10:00
func (gui *Gui) enterSubmodule(submodule *models.SubmoduleConfig) error {
wd, err := os.Getwd()
if err != nil {
return err
}
2022-01-28 20:44:36 +11:00
gui.RepoPathStack.Push(wd)
2020-09-30 08:27:23 +10:00
return gui.dispatchSwitchToRepo(submodule.Path, true)
2020-09-30 08:27:23 +10:00
}