Skip to content

Commit 5e10841

Browse files
committed
feat: string templater
1 parent 2705103 commit 5e10841

4 files changed

Lines changed: 74 additions & 21 deletions

File tree

prompts/prompt.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package prompts
2+
3+
type Prompt interface {
4+
5+
}

templater/file.go

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package templater
22

33
import (
44
"errors"
5-
"os"
65

76
"github.com/aymerick/raymond"
87
)
@@ -37,28 +36,10 @@ func (f *FileMaker) Render(vars map[string]string) error {
3736
return nil
3837
}
3938

40-
func (f *FileMaker) writeToFile(dest string) error {
41-
file, err := os.Create(dest)
42-
43-
if err != nil {
44-
return err
45-
}
46-
47-
defer file.Close()
48-
49-
_, err = file.WriteString(f.Result)
50-
51-
if err != nil {
52-
return err
53-
}
54-
55-
return nil
56-
}
57-
5839
// Save - saves results to a file
5940
func (f *FileMaker) Save(dest string) error {
6041
if len(f.Result) > 0 {
61-
err := f.writeToFile(dest)
42+
err := writeToFile(dest, f.Result)
6243

6344
if err != nil {
6445
return err

templater/string.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package templater
2+
3+
import (
4+
"errors"
5+
6+
"github.com/aymerick/raymond"
7+
)
8+
9+
// StringTemplate -
10+
type StringTemplate struct {
11+
TPL string
12+
Result string
13+
}
14+
15+
// NewStringTemplate -
16+
func NewStringTemplate(tpl string) *StringTemplate {
17+
return &StringTemplate {
18+
TPL: tpl,
19+
}
20+
}
21+
22+
// Render -
23+
func (s *StringTemplate) Render(ctx map[string]string) error {
24+
result, err := raymond.Render(s.TPL, ctx)
25+
26+
if err != nil {
27+
return err
28+
}
29+
30+
s.Result = result
31+
return nil
32+
}
33+
34+
// Save - saves results to a file
35+
func (s *StringTemplate) Save(dest string) error {
36+
if len(s.Result) > 0 {
37+
err := writeToFile(dest, s.Result)
38+
39+
if err != nil {
40+
return err
41+
}
42+
} else {
43+
return errors.New("no result")
44+
}
45+
return nil
46+
}

templater/templater.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
package templater
22

3+
import "os"
4+
35
// Templater -
46
type Templater interface {
5-
Render() interface{}
7+
Render(vars map[string]string) error
8+
Save(dest string) error
9+
}
10+
11+
func writeToFile(dest, result string) error {
12+
file, err := os.Create(dest)
13+
14+
if err != nil {
15+
return err
16+
}
17+
18+
defer file.Close()
19+
20+
_, err = file.WriteString(result)
21+
22+
if err != nil {
23+
return err
24+
}
25+
26+
return nil
627
}

0 commit comments

Comments
 (0)