diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-08-09 20:27:44 +1000 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-08-13 13:51:56 +1000 |
commit | 46ae55f91e4feab67b01fcd63631dbaf47b3665f (patch) | |
tree | 175da9f1489b78c0335107b0ba8d90909a346924 /pkg/gui/services/custom_commands | |
parent | 225c563c630e8771c2c6741c78e8a427b3283f58 (diff) |
introduce gui adapter
Diffstat (limited to 'pkg/gui/services/custom_commands')
-rw-r--r-- | pkg/gui/services/custom_commands/resolver.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/pkg/gui/services/custom_commands/resolver.go b/pkg/gui/services/custom_commands/resolver.go index 35ebbd9d1..1b80987c1 100644 --- a/pkg/gui/services/custom_commands/resolver.go +++ b/pkg/gui/services/custom_commands/resolver.go @@ -1,6 +1,10 @@ package custom_commands import ( + "bytes" + "fmt" + "text/template" + "github.com/jesseduffield/lazygit/pkg/common" "github.com/jesseduffield/lazygit/pkg/config" ) @@ -101,3 +105,30 @@ func (self *Resolver) resolveMenuOption(option *config.CustomCommandMenuOption, Value: value, }, nil } + +func main() { + fmt.Println(ResolveTemplate("old approach: {{index .PromptResponses 0}}, new approach: {{ .Form.a }}", CustomCommandObject{ + PromptResponses: []string{"a"}, + Form: map[string]string{"a": "B"}, + })) +} + +type CustomCommandObject struct { + // deprecated. Use Responses instead + PromptResponses []string + Form map[string]string +} + +func ResolveTemplate(templateStr string, object interface{}) (string, error) { + tmpl, err := template.New("template").Parse(templateStr) + if err != nil { + return "", err + } + + var buf bytes.Buffer + if err := tmpl.Execute(&buf, object); err != nil { + return "", err + } + + return buf.String(), nil +} |