File: update_server_info.go

package info (click to toggle)
golang-github-go-git-go-git 5.14.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,648 kB
  • sloc: makefile: 81; sh: 76
file content (34 lines) | stat: -rw-r--r-- 869 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main

import (
	"fmt"
	"os"

	"github.com/go-git/go-git/v5"
	"github.com/go-git/go-git/v5/plumbing/serverinfo"
	"github.com/go-git/go-git/v5/storage/filesystem"
)

// CmdUpdateServerInfo command updates the server info files in the repository.
// This is used by git http transport (dumb) to generate a list of available
// refs for the repository. See:
// https://git-scm.com/docs/git-update-server-info
type CmdUpdateServerInfo struct {
	cmd
}

// Usage returns the usage of the command.
func (CmdUpdateServerInfo) Usage() string {
	return fmt.Sprintf("within a git repository run: %s", os.Args[0])
}

// Execute runs the command.
func (c *CmdUpdateServerInfo) Execute(args []string) error {
	r, err := git.PlainOpen(".")
	if err != nil {
		return err
	}

	fs := r.Storer.(*filesystem.Storage).Filesystem()
	return serverinfo.UpdateServerInfo(r.Storer, fs)
}