package infra

import (
	"fmt"
	"os/exec"
	"strings"
)

// DockerComposeUp levanta un stack docker-compose desde el archivo dado.
// Si detach es true ejecuta en background (-d). Retorna el stdout del comando.
func DockerComposeUp(composeFile string, detach bool) (string, error) {
	args := []string{"compose", "-f", composeFile, "up"}
	if detach {
		args = append(args, "-d")
	}

	out, err := exec.Command("docker", args...).CombinedOutput()
	if err != nil {
		return "", fmt.Errorf("docker compose up %s: %s", composeFile, strings.TrimSpace(string(out)))
	}
	return strings.TrimSpace(string(out)), nil
}
