https://github.com/excoriate/daggerx
DaggerX is a Go package 📦 that helps you avoid DRY while developing Dagger modules.
https://github.com/excoriate/daggerx
cli devops ecs example sre tooling
Last synced: 12 days ago
JSON representation
DaggerX is a Go package 📦 that helps you avoid DRY while developing Dagger modules.
- Host: GitHub
- URL: https://github.com/excoriate/daggerx
- Owner: Excoriate
- License: apache-2.0
- Created: 2024-05-15T10:22:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-06T15:23:17.000Z (2 months ago)
- Last Synced: 2025-07-03T22:05:24.138Z (12 days ago)
- Topics: cli, devops, ecs, example, sre, tooling
- Language: Go
- Size: 766 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
A collection of utility functions that works well when using Dagger and Go
---
[](https://pkg.go.dev/github.com/Excoriate/daggerx)
[](https://github.com/Excoriate/daggerx/graphs/contributors)
[](https://github.com/Excoriate/daggerx/pulse)## Why 🤔
This library is a set of reusable functions that can be used when developing [Dagger](https://www.dagger.io/) modules or functions using [Go](https://golang.org/). 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](https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them):
```bash
go get github.com/Excoriate/daggerx
```### Pre-requisites 📋
- [Go](https://golang.org/doc/install) >= ~1.22
>**NOTE**: For the tools used in this project, please check the [Makefile](./Makefile), and the [Taskfile](./Taskfile.yml) files. You'll also need [pre-commit](https://pre-commit.com/) installed.
---
## Usage 🚀
### Convert map to slice of DaggerEnvVars
```go
package mainimport (
"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
```go
package mainimport (
"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
```go
package mainimport (
"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](./CONTRIBUTING.md).