1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-12-01 22:52:01 +02:00

Allow having multiple config files

This commit is contained in:
mjarkk
2021-07-27 22:03:37 +02:00
committed by Jesse Duffield
parent db736896bc
commit 913a2fd065
7 changed files with 137 additions and 65 deletions

View File

@@ -1,6 +1,7 @@
package gui
import (
"errors"
"fmt"
"strings"
@@ -114,13 +115,38 @@ func (gui *Gui) handleStatusSelect() error {
})
}
func (gui *Gui) askForConfigFile(action func(file string) error) error {
confFiles := gui.Config.GetUserConfigFiles()
switch len(confFiles) {
case 0:
return errors.New("no config file found")
case 1:
return action(confFiles[0])
default:
menuItems := make([]*menuItem, len(confFiles))
for i, file := range confFiles {
i := i
menuItems[i] = &menuItem{
displayString: file,
onPress: func() error {
return action(confFiles[i])
},
}
}
return gui.createMenu("select config file", menuItems, createMenuOptions{})
}
}
func (gui *Gui) handleOpenConfig() error {
return gui.openFile(gui.Config.GetUserConfigPath())
return gui.askForConfigFile(func(file string) error {
return gui.openFile(file)
})
}
func (gui *Gui) handleEditConfig() error {
filename := gui.Config.GetUserConfigPath()
return gui.editFile(filename)
return gui.askForConfigFile(func(file string) error {
return gui.editFile(file)
})
}
func lazygitTitle() string {