diff --git a/pkg/download/goget/goget.go b/pkg/download/goget/goget.go index 7a711302..55bcbdd7 100644 --- a/pkg/download/goget/goget.go +++ b/pkg/download/goget/goget.go @@ -25,22 +25,19 @@ import ( func New() (download.Protocol, error) { const op errors.Op = "goget.New" goBin := env.GoBinPath() - fs := afero.NewOsFs() - mf, err := module.NewGoGetFetcher(goBin, fs) + mf, err := module.NewGoGetFetcher(goBin) if err != nil { return nil, errors.E(op, err) } return &goget{ goBinPath: goBin, fetcher: mf, - fs: fs, }, nil } type goget struct { goBinPath string fetcher module.Fetcher - fs afero.Fs } func (gg *goget) List(ctx context.Context, mod string) ([]string, error) { @@ -91,12 +88,13 @@ func (gg *goget) Latest(ctx context.Context, mod string) (*storage.RevInfo, erro } func (gg *goget) list(op errors.Op, mod string) (*listResp, error) { - hackyPath, err := afero.TempDir(gg.fs, "", "hackymod") + fs := afero.NewOsFs() + hackyPath, err := afero.TempDir(fs, "", "hackymod") if err != nil { return nil, errors.E(op, err) } - defer gg.fs.RemoveAll(hackyPath) - err = module.Dummy(gg.fs, hackyPath) + defer fs.RemoveAll(hackyPath) + err = module.Dummy(fs, hackyPath) cmd := exec.Command( gg.goBinPath, "list", "-m", "-versions", "-json", diff --git a/pkg/module/go_get_fetcher.go b/pkg/module/go_get_fetcher.go index 10de0518..19a28c0f 100644 --- a/pkg/module/go_get_fetcher.go +++ b/pkg/module/go_get_fetcher.go @@ -19,13 +19,13 @@ type goGetFetcher struct { } // NewGoGetFetcher creates fetcher which uses go get tool to fetch modules -func NewGoGetFetcher(goBinaryName string, fs afero.Fs) (Fetcher, error) { +func NewGoGetFetcher(goBinaryName string) (Fetcher, error) { const op errors.Op = "module.NewGoGetFetcher" if err := validGoBinary(goBinaryName); err != nil { return nil, errors.E(op, err) } return &goGetFetcher{ - fs: fs, + fs: afero.NewOsFs(), goBinaryName: goBinaryName, }, nil } diff --git a/pkg/module/go_get_fetcher_test.go b/pkg/module/go_get_fetcher_test.go index 5036cf28..e42db426 100644 --- a/pkg/module/go_get_fetcher_test.go +++ b/pkg/module/go_get_fetcher_test.go @@ -6,20 +6,18 @@ import ( "github.com/gomods/athens/pkg/config/env" "github.com/stretchr/testify/assert" - - "github.com/spf13/afero" ) func (s *ModuleSuite) TestNewGoGetFetcher() { r := s.Require() - fetcher, err := NewGoGetFetcher(s.goBinaryName, s.fs) + fetcher, err := NewGoGetFetcher(s.goBinaryName) r.NoError(err) _, ok := fetcher.(*goGetFetcher) r.True(ok) } func (s *ModuleSuite) TestGoGetFetcherError() { - fetcher, err := NewGoGetFetcher("invalidpath", afero.NewOsFs()) + fetcher, err := NewGoGetFetcher("invalidpath") assert.Nil(s.T(), fetcher) assert.EqualError(s.T(), err, "exec: \"invalidpath\": executable file not found in $PATH") @@ -29,7 +27,7 @@ func (s *ModuleSuite) TestGoGetFetcherFetch() { r := s.Require() // we need to use an OS filesystem because fetch executes vgo on the command line, which // always writes to the filesystem - fetcher, err := NewGoGetFetcher(s.goBinaryName, afero.NewOsFs()) + fetcher, err := NewGoGetFetcher(s.goBinaryName) r.NoError(err) ref, err := fetcher.Fetch(repoURI, version) r.NoError(err, "fetch shouldn't error") @@ -56,7 +54,7 @@ func ExampleFetch() { repoURI := "github.com/arschles/assert" version := "v1.0.0" goBinaryName := env.GoBinPath() - fetcher, err := NewGoGetFetcher(goBinaryName, afero.NewOsFs()) + fetcher, err := NewGoGetFetcher(goBinaryName) ref, err := fetcher.Fetch(repoURI, version) // handle errors if any if err != nil {