Files
go-hugo-cms/pkg/git/git.go
2025-09-22 12:12:59 +02:00

38 lines
569 B
Go

package git
import (
"fmt"
"os"
gogit "github.com/go-git/go-git/v5"
)
type GitOptions struct {
URL string
RecurseSubmodule bool
}
func (g *GitOptions) Clone() (string, error) {
a := &gogit.CloneOptions{
URL: g.URL,
Progress: os.Stdout,
}
if err := a.Validate(); err != nil {
return fmt.Sprintln("Validation failed"), err
}
dir, err := os.MkdirTemp("", "clone")
if err != nil {
return "", err
}
defer os.RemoveAll(dir)
_, err = gogit.PlainClone(dir, false, a)
if err != nil {
return "", err
}
return "Success", nil
}