A collection of utility functions that works well when using Dagger and Go
Why π€
This library is a set of reusable functions that can be used when developing Dagger modules or functions using Go. The objective is to speed up the development process and make it easier to write Dagger modules using Go.
Installation π οΈ
Install it using Go get:
go get github.com/Excoriate/daggerx
Pre-requisites π
NOTE: For the tools used in this project, please check the Makefile, and the Taskfile files. You'll also need pre-commit installed.
Usage π
Convert map to slice of DaggerEnvVars
package main
import (
"fmt"
"github.com/Excoriate/daggerx/pkg/envvars"
"github.com/Excoriate/daggerx/pkg/types"
)
func main() {
envVarsMap := map[string]string{
"key1": "value1",
"key2": "value2",
"key3": "value3",
}
envVarsSlice, err := envvars.ToDaggerEnvVarsFromMap(envVarsMap)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Environment Variables Slice:", envVarsSlice)
}
Generate validated Dagger commands
package main
import (
"fmt"
"github.com/Excoriate/daggerx/pkg/execmd"
)
func main() {
cmd, err := execmd.GenerateCommand("terraform", "plan", "-var", "foo=bar")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Generated Command:", *cmd)
}
Convert slice of key=value strings to slice of DaggerEnvVars
package main
import (
"fmt"
"github.com/Excoriate/daggerx/pkg/envvars"
"github.com/Excoriate/daggerx/pkg/types"
)
func main() {
envVarsSlice := []string{"key1=value1", "key2=value2", "key3=value3"}
daggerEnvVarsSlice, err := envvars.ToDaggerEnvVarsFromSlice(envVarsSlice)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Dagger Environment Variables Slice:", daggerEnvVarsSlice)
}
Contributing
Please read our contributing guide.