refactor: create compose package

This commit is contained in:
2021-09-06 01:15:59 +02:00
parent e1a10723ce
commit b5d8fb1270
8 changed files with 172 additions and 152 deletions

View File

@ -4,9 +4,13 @@ import (
"fmt"
"os"
"path"
"path/filepath"
"strings"
"coopcloud.tech/abra/pkg/client/stack"
loader "coopcloud.tech/abra/pkg/client/stack"
"coopcloud.tech/abra/pkg/config"
composetypes "github.com/docker/cli/cli/compose/types"
"github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/plumbing"
)
@ -66,3 +70,21 @@ func EnsureVersion(version string) error {
return nil
}
// GetComposeConfig merges and loads a recipe compose configuration.
func GetComposeConfig(recipeName string) (*composetypes.Config, error) {
pattern := fmt.Sprintf("%s/%s/compose**yml", config.APPS_DIR, recipeName)
composeFiles, err := filepath.Glob(pattern)
if err != nil {
return &composetypes.Config{}, err
}
opts := stack.Deploy{Composefiles: composeFiles}
emptyEnv := make(map[string]string)
compose, err := loader.LoadComposefile(opts, emptyEnv)
if err != nil {
return &composetypes.Config{}, err
}
return compose, nil
}