33 lines
573 B
1
package git
2
3
import (
4
"errors"
5
"fmt"
6
"os"
7
"path/filepath"
8
9
gogit "github.com/go-git/go-git/v5"
10
"github.com/go-git/go-git/v5/config"
11
)
12
13
func InitBare(path string) error {
14
parent := filepath.Dir(path)
15
16
if err := os.MkdirAll(parent, 0755); errors.Is(err, os.ErrExist) {
17
return fmt.Errorf("error creating user directory: %w", err)
18
}
19
20
repository, err := gogit.PlainInit(path, true)
21
if err != nil {
22
return err
23
}
24
25
err = repository.CreateBranch(&config.Branch{
26
Name: "main",
27
})
28
if err != nil {
29
return fmt.Errorf("creating branch: %w", err)
30
}
31
32
return nil
33
}
34