Skip to content

DaggerX is a Go package 📦 that helps you avoid DRY while developing Dagger modules.

License

Notifications You must be signed in to change notification settings

Excoriate/daggerx

Repository files navigation

logo

A collection of utility functions that works well when using Dagger and Go


Go Reference Contributors Activity

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 📋

  • Go >= ~1.22

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.

About

DaggerX is a Go package 📦 that helps you avoid DRY while developing Dagger modules.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published