Skip to content

Commit c95c8ab

Browse files
committed
Add configuration
1 parent aef2339 commit c95c8ab

File tree

4 files changed

+56
-7
lines changed

4 files changed

+56
-7
lines changed

internal/gstatic/defs.go

+6
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@ type VarReader interface {
77
GetVarsForTpl(r io.Reader) (map[interface{}]interface{}, error)
88
GetDsExtension() string
99
}
10+
11+
// Config the structs holds config settings
12+
type Config struct {
13+
Layout string
14+
Base string
15+
}

internal/gstatic/generator.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
// Generator is the main struct. It use a VarReader to extract variables from a data source
1010
type Generator struct {
11+
Config Config
1112
VarReader VarReader
1213
}
1314

@@ -27,7 +28,7 @@ func (g Generator) Generate(srcFolder string, targetFolder string) error {
2728
func (g Generator) resolver(srcFolder string, targetFolder string) filepath.WalkFunc {
2829

2930
var useLayout bool = false
30-
var layout string = srcFolder + string(os.PathSeparator) + "layout" + string(os.PathSeparator) + "layout.html"
31+
var layout string = srcFolder + string(os.PathSeparator) + g.Config.Layout
3132

3233
if _, err := os.Stat(layout); err == nil {
3334
useLayout = true
@@ -106,7 +107,7 @@ func (g Generator) parseFileWithLayout(path, targetFilename, layout string) erro
106107
defer f.Close()
107108

108109
tmpl, err := template.ParseFiles(layout, path)
109-
err = tmpl.ExecuteTemplate(f, "base", m)
110+
err = tmpl.ExecuteTemplate(f, g.Config.Base, m)
110111
if err != nil {
111112
return err
112113
}

internal/gstatic/generator_test.go

+27-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@ func TestBasicGenerator(t *testing.T) {
2323

2424
ds := datasource.Yaml{}
2525

26-
yamlGen := gstatic.Generator{ds}
26+
config := gstatic.Config{
27+
"layout/layout.html",
28+
"base",
29+
}
30+
31+
yamlGen := gstatic.Generator{
32+
config,
33+
ds,
34+
}
2735

2836
err := yamlGen.Generate(srcFolderBasic, targetFolder)
2937
if err != nil {
@@ -61,7 +69,15 @@ func TestCompositionGenerator(t *testing.T) {
6169

6270
ds := datasource.Yaml{}
6371

64-
yamlGen := gstatic.Generator{ds}
72+
config := gstatic.Config{
73+
"layout/layout.html",
74+
"base",
75+
}
76+
77+
yamlGen := gstatic.Generator{
78+
config,
79+
ds,
80+
}
6581

6682
err := yamlGen.Generate(srcFolderComposition, targetFolder)
6783
if err != nil {
@@ -88,7 +104,15 @@ func TestStaticGenerator(t *testing.T) {
88104

89105
ds := datasource.Yaml{}
90106

91-
yamlGen := gstatic.Generator{ds}
107+
config := gstatic.Config{
108+
"layout/layout.html",
109+
"base",
110+
}
111+
112+
yamlGen := gstatic.Generator{
113+
config,
114+
ds,
115+
}
92116

93117
err := yamlGen.Generate(srcFolderStatic, targetFolder)
94118
if err != nil {

main.go

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"flag"
45
"fmt"
56
"os"
67

@@ -10,6 +11,16 @@ import (
1011

1112
func main() {
1213

14+
layoutPtr := flag.String("layout", "layout/layout.html", "Path to the layout")
15+
basePtr := flag.String("base", "base", "Name of the main template")
16+
17+
flag.Parse()
18+
19+
config := gstatic.Config{
20+
Layout: *layoutPtr,
21+
Base: *basePtr,
22+
}
23+
1324
if len(os.Args) < 3 {
1425
usage()
1526
}
@@ -21,16 +32,23 @@ func main() {
2132

2233
ds := datasource.Yaml{}
2334

24-
yamlGen := gstatic.Generator{VarReader: ds}
35+
yamlGen := gstatic.Generator{
36+
Config: config,
37+
VarReader: ds,
38+
}
2539

2640
err := yamlGen.Generate(srcFolder, targetFolder)
2741
if err != nil {
2842
fmt.Fprintf(os.Stderr, "Something went wrong: %v\n", err.Error())
43+
os.Exit(1)
2944
}
3045

3146
}
3247

3348
func usage() {
49+
3450
fmt.Println("Usage: gstatic <sourceFolder> <targetFolder>")
35-
os.Exit(0)
51+
fmt.Println("Use -h for help")
52+
os.Exit(1)
53+
3654
}

0 commit comments

Comments
 (0)