summaryrefslogtreecommitdiffstats
path: root/pkg/gui/services/custom_commands
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-08-09 20:27:44 +1000
committerJesse Duffield <jessedduffield@gmail.com>2022-08-13 13:51:56 +1000
commit46ae55f91e4feab67b01fcd63631dbaf47b3665f (patch)
tree175da9f1489b78c0335107b0ba8d90909a346924 /pkg/gui/services/custom_commands
parent225c563c630e8771c2c6741c78e8a427b3283f58 (diff)
introduce gui adapter
Diffstat (limited to 'pkg/gui/services/custom_commands')
-rw-r--r--pkg/gui/services/custom_commands/resolver.go31
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
+}