git-lfs/lfsapi/netrc.go

35 lines
665 B
Go
Raw Normal View History

2016-12-19 21:53:18 +00:00
package lfsapi
import (
"os"
"path/filepath"
"github.com/bgentry/go-netrc/netrc"
"github.com/git-lfs/git-lfs/config"
2016-12-19 21:53:18 +00:00
)
type NetrcFinder interface {
FindMachine(string) *netrc.Machine
}
func ParseNetrc(osEnv config.Environment) (NetrcFinder, string, error) {
2016-12-19 21:53:18 +00:00
home, _ := osEnv.Get("HOME")
if len(home) == 0 {
2017-09-29 17:45:52 +00:00
return &noFinder{}, "", nil
2016-12-19 21:53:18 +00:00
}
nrcfilename := filepath.Join(home, netrcBasename)
if _, err := os.Stat(nrcfilename); err != nil {
2017-09-29 17:45:52 +00:00
return &noFinder{}, nrcfilename, nil
2016-12-19 21:53:18 +00:00
}
2017-09-29 17:45:52 +00:00
f, err := netrc.ParseFile(nrcfilename)
return f, nrcfilename, err
2016-12-19 21:53:18 +00:00
}
type noFinder struct{}
func (f *noFinder) FindMachine(host string) *netrc.Machine {
return nil
}