Skip to content

Commit

Permalink
feat: Breaking Change yaml key variables change to vars and to call a…
Browse files Browse the repository at this point in the history
…lso you have to use {{ .Vars.subkey }}
  • Loading branch information
Fabian Simon committed Jan 5, 2023
1 parent f5f02ed commit 73ea64c
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 37 deletions.
8 changes: 4 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ GLOBAL OPTIONS:
Example Script:
```yaml
{{$bval := "B"}}
variables:
vars:
A: {{$bval}}
FC: {{ .Var.f}}_included
FC: {{ .Vars.f}}_included
PUB_KEY: {{shell "cat ~/.ssh/id_rsa.pub"}}
AB: {{$bval}}B
---
Expand All @@ -37,13 +37,13 @@ install:
- echo "Hallo" > test.gomake.txt
- export TEST1234=ShowME
- echo $TEST1234
{{- if eq .Var.A "B" }}
{{- if eq .Vars.A "B" }}
- echo "LINUX"
{{- end}}
- ls {{ .Env.ZDOTDIR}}
{{include "execute"}}
- echo {{.Bar}}
- echo {{.Var.PUB_KEY}}
- echo {{.Vars.PUB_KEY}}
- lf
on_failure:
- echo "Error"
Expand Down
2 changes: 2 additions & 0 deletions command/include.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package command

import (
"fmt"
"log"
"text/template"
)

Expand All @@ -23,6 +24,7 @@ func (i *IncludeCommand) GetFuncMap() template.FuncMap {

func (i *IncludeCommand) Execute(cmd string, makefile MakeStruct, listType CommandListType) ([]string, error) {
if _, ok := makefile[cmd]; !ok {
log.Println(makefile)
return []string{}, fmt.Errorf("%s not exist, so can not include", cmd)
}
var list []string
Expand Down
24 changes: 14 additions & 10 deletions gomake.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
variables:
goarchs: "amd64|arm64|386|arm"
vars:
goarchs:
{{range $i, $value := list "amd64" "arm64" "386" "arm" }}
- {{$value}}
{{- end}}
gooss: "darwin|linux|windows"
dist: "dist"
binary: "gomake"
Expand All @@ -20,20 +23,21 @@ buildAll:

build:
script:
- mkdir {{.Var.dist}}
{{- range $goosKey, $goos := splitList "|" $root.Var.gooss}}
{{- range $goarchKey, $goarch := splitList "|" $root.Var.goarchs}}
- env GOOS={{$goos}} GOARCH={{$goarch}} go build -o {{$root.Var.dist}}/{{$root.Var.binary}}_{{$goos}}_{{$goarch}}
- mkdir {{.Vars.dist}}
{{- range $goosKey, $goos := splitList "|" $root.Vars.gooss}}
{{- range $goarchKey, $goarch := $root.Vars.goarchs}}
- env GOOS={{$goos}} GOARCH={{$goarch}} go build -o {{$root.Vars.dist}}/{{$root.Vars.binary}}_{{$goos}}_{{$goarch}}
{{- end}}
{{- end}}
on_failure:
- rm -rf {{.Var.dist}}
- rm -rf {{.Vars.dist}}

buildDocker:
script:
- docker build -t {{$root.Var.dockername}}:{{$root.Var.version}} -f {{$root.Var.dockerfile}} .
- docker build -t {{$root.Vars.dockername}}:{{$root.Vars.version}} -f {{$root.Vars.dockerfile}} .
on_failure:
- docker rmi {{$root.Var.dockername}}:{{$root.Var.version}}
- docker rmi {{$root.Vars.dockername}}:{{$root.Vars.version}}

test:
script:
- docker run --rm {{$root.Var.dockername}}:{{$root.Var.version}} --help
- docker run --rm {{$root.Vars.dockername}}:{{$root.Vars.version}} --help
8 changes: 4 additions & 4 deletions gomake_example.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

{{$bval := "B"}}
variables:
vars:
A: {{$bval}}
FC: {{ .Var.f}}_included
FC: {{ .Vars.f}}_included
PUB_KEY: {{shell "cat ~/.ssh/id_rsa.pub"}}
AB: {{$bval}}B
---
Expand All @@ -14,14 +14,14 @@ install:
- echo "Hallo" > test.gomake.txt
- export TEST1234=ShowME
- echo $TEST1234
{{- if eq .Var.A "B" }}
{{- if eq .Vars.A "B" }}
- echo {{lower "LINUX make"}}
{{- end}}
- ls {{ .Env.ZDOTDIR}}
{{include "execute"}}
{{include "readFileSize"}}
- echo {{.Bar}}
- echo {{.Var.PUB_KEY}}
- echo {{.Vars.PUB_KEY}}
- lf
on_failure:
- echo "Error"
Expand Down
4 changes: 2 additions & 2 deletions gomake_helper.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@

variables:
vars:
helper: "YES"

---
readFileSize:
script:
{{- if eq .Var.A "B" }}
{{- if eq .Vars.A "B" }}
- echo "LINUX bla bal"
{{- end}}

6 changes: 3 additions & 3 deletions gomake_ini.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
variables:
vars:
a: b
b: c
---

echoA:
script:
- echo {{.Var.a}}
- echo {{.Vars.a}}

echoB:
script:
- echo {{.Var.b}}
- echo {{.Vars.b}}
- exit 1
on_failure:
- echo "Something exit with not 0"
Expand Down
28 changes: 14 additions & 14 deletions interpreter/interpreter.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
)

type TemplateData struct {
Var map[string]any
Env map[string]string
Vars map[string]any
Env map[string]string
}

func (t TemplateData) Bar() string {
Expand Down Expand Up @@ -62,7 +62,7 @@ func (r *Interpreter) getMakeScripts(yamlFileData []byte) (command.MakeStruct, e
func (r *Interpreter) GetExecuteTemplate(file string, extraVariables map[string]any) ([]byte, map[string]map[string]any, error) {
varCommandArr := strings.Split(file, "---")
if len(varCommandArr) == 1 {
varCommandArr = strings.Split("variables:\n---\n"+file, "---")
varCommandArr = strings.Split("vars:\n---\n"+file, "---")
}
if len(varCommandArr) != 2 {
return []byte{}, nil, fmt.Errorf("only variables and command as seperated yaml are allowed")
Expand All @@ -84,7 +84,7 @@ func (r *Interpreter) GetExecuteTemplate(file string, extraVariables map[string]
}
}

varStr, err := r.getParsedTemplate("gomake_variables", varCommandArr[0], TemplateData{Env: env, Var: tempVar})
varStr, err := r.getParsedTemplate("gomake_vars", varCommandArr[0], TemplateData{Env: env, Vars: tempVar})

if err != nil {
return nil, nil, err
Expand All @@ -95,26 +95,26 @@ func (r *Interpreter) GetExecuteTemplate(file string, extraVariables map[string]
return []byte{}, nil, err
}
for k, v := range r.ExtraVariables {
variables["variables"][k] = v
variables["vars"][k] = v
}

for k, v := range extraVariables {
if _, ok := variables["variables"][k]; !ok {
variables["variables"][k] = v
if _, ok := variables["vars"][k]; !ok {
variables["vars"][k] = v
}
}

v, err := r.cmdHandler.ExecuteVariablesCommands(variables["variables"])
v, err := r.cmdHandler.ExecuteVariablesCommands(variables["vars"])
if err != nil {
return nil, nil, err
}

b, err := r.getParsedTemplate("gomake", varCommandArr[1], TemplateData{Var: v, Env: env})
b, err := r.getParsedTemplate("gomake", varCommandArr[1], TemplateData{Vars: v, Env: env})
return b, variables, err
}

type DryRunOutput struct {
Variables map[string]any
Vars map[string]any
ExecutedCommand command.Operation
}

Expand All @@ -138,7 +138,7 @@ func (r *Interpreter) Run() error {
return err
}
out, err := yaml.Marshal(DryRunOutput{
Variables: variables["variables"],
Vars: variables["vars"],
ExecutedCommand: command[r.ExecuteCommand],
})
if err != nil {
Expand Down Expand Up @@ -178,12 +178,12 @@ func (r *Interpreter) getParsedTemplate(templateName, tmpl string, data Template
if err != nil {
log.Panic(err)
}
b, variables, err := r.GetExecuteTemplate(string(f), data.Var)
b, variables, err := r.GetExecuteTemplate(string(f), data.Vars)
if err != nil {
log.Panic(err)
}
for k, v := range variables["variables"] {
data.Var[k] = v
for k, v := range variables["vars"] {
data.Vars[k] = v
}
return string(b)
}
Expand Down

0 comments on commit 73ea64c

Please sign in to comment.