fork
Configure Feed
Select the types of activity you want to include in your feed.
Monorepo for Tangled
tangled.org
fork
Configure Feed
Select the types of activity you want to include in your feed.
1package git
2
3import (
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 "github.com/go-git/go-git/v5/plumbing"
12)
13
14func InitBare(path, defaultBranch string) error {
15 parent := filepath.Dir(path)
16
17 if err := os.MkdirAll(parent, 0755); errors.Is(err, os.ErrExist) {
18 return fmt.Errorf("error creating user directory: %w", err)
19 }
20
21 repository, err := gogit.PlainInit(path, true)
22 if err != nil {
23 return err
24 }
25
26 // set up default branch
27 err = repository.CreateBranch(&config.Branch{
28 Name: defaultBranch,
29 })
30 if err != nil {
31 return fmt.Errorf("creating branch: %w", err)
32 }
33
34 defaultReference := plumbing.ReferenceName(fmt.Sprintf("refs/heads/%s", defaultBranch))
35
36 ref := plumbing.NewSymbolicReference(plumbing.HEAD, defaultReference)
37 if err = repository.Storer.SetReference(ref); err != nil {
38 return fmt.Errorf("creating symbolic reference: %w", err)
39 }
40
41 return nil
42}