cli/git/git.go
2022-10-14 07:47:03 +00:00

154 lines
3.5 KiB
Go

package git
import (
"context"
"io"
"os"
)
func GitCommand(args ...string) (*gitCommand, error) {
c := &Client{}
return c.Command(context.Background(), args...)
}
func ShowRefs(ref ...string) ([]Ref, error) {
c := &Client{}
return c.ShowRefs(context.Background(), ref...)
}
func CurrentBranch() (string, error) {
c := &Client{}
return c.CurrentBranch(context.Background())
}
func Config(name string) (string, error) {
c := &Client{}
return c.Config(context.Background(), name)
}
func UncommittedChangeCount() (int, error) {
c := &Client{}
return c.UncommittedChangeCount(context.Background())
}
func Commits(baseRef, headRef string) ([]*Commit, error) {
c := &Client{}
return c.Commits(context.Background(), baseRef, headRef)
}
func LastCommit() (*Commit, error) {
c := &Client{}
return c.LastCommit(context.Background())
}
func CommitBody(sha string) (string, error) {
c := &Client{}
return c.CommitBody(context.Background(), sha)
}
func Push(remote string, ref string, cmdIn io.ReadCloser, cmdOut, cmdErr io.Writer) error {
//TODO: Replace with factory GitClient and use AuthenticatedCommand
c := &Client{
Stdin: cmdIn,
Stdout: cmdOut,
Stderr: cmdErr,
}
return c.Push(context.Background(), remote, ref)
}
func ReadBranchConfig(branch string) (cfg BranchConfig) {
c := &Client{}
return c.ReadBranchConfig(context.Background(), branch)
}
func DeleteLocalBranch(branch string) error {
c := &Client{}
return c.DeleteLocalBranch(context.Background(), branch)
}
func HasLocalBranch(branch string) bool {
c := &Client{}
return c.HasLocalBranch(context.Background(), branch)
}
func CheckoutBranch(branch string) error {
c := &Client{}
return c.CheckoutBranch(context.Background(), branch)
}
func CheckoutNewBranch(remoteName, branch string) error {
c := &Client{}
return c.CheckoutNewBranch(context.Background(), remoteName, branch)
}
func Pull(remote, branch string) error {
//TODO: Replace with factory GitClient and use AuthenticatedCommand
c := &Client{
Stdin: os.Stdin,
Stdout: os.Stdout,
Stderr: os.Stderr,
}
return c.Pull(context.Background(), remote, branch)
}
func RunClone(cloneURL string, args []string) (target string, err error) {
//TODO: Replace with factory GitClient and use AuthenticatedCommand
c := &Client{
Stdin: os.Stdin,
Stdout: os.Stdout,
Stderr: os.Stderr,
}
return c.Clone(context.Background(), cloneURL, args)
}
func ToplevelDir() (string, error) {
c := &Client{}
return c.ToplevelDir(context.Background())
}
func GetDirFromPath(repoDir string) (string, error) {
c := &Client{
RepoDir: repoDir,
}
return c.GitDir(context.Background())
}
func PathFromRepoRoot() string {
c := &Client{}
return c.PathFromRoot(context.Background())
}
func Remotes() (RemoteSet, error) {
c := &Client{}
return c.Remotes(context.Background())
}
func RemotesForPath(repoDir string) (RemoteSet, error) {
c := &Client{
RepoDir: repoDir,
}
return c.Remotes(context.Background())
}
func AddRemote(name, url string) (*Remote, error) {
c := &Client{}
return c.AddRemote(context.Background(), name, url, []string{})
}
func AddNamedRemote(url, name, repoDir string, branches []string) error {
c := &Client{
RepoDir: repoDir,
}
_, err := c.AddRemote(context.Background(), name, url, branches)
return err
}
func UpdateRemoteURL(name, url string) error {
c := &Client{}
return c.UpdateRemoteURL(context.Background(), name, url)
}
func SetRemoteResolution(name, resolution string) error {
c := &Client{}
return c.SetRemoteResolution(context.Background(), name, resolution)
}