package git

import (
	"strings"

	"coopcloud.tech/abra/pkg/log"
	"github.com/go-git/go-git/v5"
	"github.com/go-git/go-git/v5/config"
)

// CreateRemote creates a new git remote in a repository
func CreateRemote(repo *git.Repository, name, url string, dryRun bool) error {
	if dryRun {
		log.Debugf("dry run: remote %s (%s) not created", name, url)
		return nil
	}

	if _, err := repo.CreateRemote(&config.RemoteConfig{
		Name: name,
		URLs: []string{url},
	}); err != nil {
		if !strings.Contains(err.Error(), "remote already exists") {
			return err
		}
	}

	return nil
}
