diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2016-08-20 01:29:07 +0200 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-08-20 01:29:07 +0200 |
commit | 9f49aaed839ae608a0ffdaa0656b3975d3404002 (patch) | |
tree | cc196dbcf8d1994f83b4950bf35948ac17303b5b /storage/filesystem | |
parent | 1d56b98d9b02e20f7feea542c75746eab34fad63 (diff) | |
download | go-git-9f49aaed839ae608a0ffdaa0656b3975d3404002.tar.gz |
storage: support ConfigStorage, memory done, fs wip
Diffstat (limited to 'storage/filesystem')
-rw-r--r-- | storage/filesystem/internal/dotgit/dotgit.go | 21 | ||||
-rw-r--r-- | storage/filesystem/internal/dotgit/dotgit_test.go | 8 |
2 files changed, 26 insertions, 3 deletions
diff --git a/storage/filesystem/internal/dotgit/dotgit.go b/storage/filesystem/internal/dotgit/dotgit.go index f365f13..448f6a2 100644 --- a/storage/filesystem/internal/dotgit/dotgit.go +++ b/storage/filesystem/internal/dotgit/dotgit.go @@ -12,17 +12,18 @@ import ( const ( suffix = ".git" packedRefsPath = "packed-refs" + configPath = "config" ) var ( // ErrNotFound is returned by New when the path is not found. ErrNotFound = errors.New("path not found") - // ErrIdxNotFound is returned by Idxfile when the idx file is not found on the - // repository. + // ErrIdxNotFound is returned by Idxfile when the idx file is not found ErrIdxNotFound = errors.New("idx file not found") // ErrPackfileNotFound is returned by Packfile when the packfile is not found - // on the repository. ErrPackfileNotFound = errors.New("packfile not found") + // ErrConfigNotFound is returned by Config when the config is not found + ErrConfigNotFound = errors.New("config file not found") ) // The DotGit type represents a local git repository on disk. This @@ -103,3 +104,17 @@ func (d *DotGit) Idxfile() (fs.FS, string, error) { return nil, "", ErrIdxNotFound } + +// Config returns the path of the config file +func (d *DotGit) Config() (fs.FS, string, error) { + configFile := d.fs.Join(d.path, configPath) + if _, err := d.fs.Stat(configFile); err != nil { + if os.IsNotExist(err) { + return nil, "", ErrNotFound + } + + return nil, "", err + } + + return d.fs, configFile, nil +} diff --git a/storage/filesystem/internal/dotgit/dotgit_test.go b/storage/filesystem/internal/dotgit/dotgit_test.go index 6125114..7c39c87 100644 --- a/storage/filesystem/internal/dotgit/dotgit_test.go +++ b/storage/filesystem/internal/dotgit/dotgit_test.go @@ -143,6 +143,14 @@ func (s *SuiteDotGit) TestRefsFromHEADFile(c *C) { c.Assert(string(ref.Target()), Equals, "refs/heads/master") } +func (s *SuiteDotGit) TestConfig(c *C) { + _, d := s.newFixtureDir(c, "spinnaker") + fs, path, err := d.Config() + c.Assert(err, IsNil) + c.Assert(fs, NotNil) + c.Assert(path, Not(Equals), "") +} + func findReference(refs []*core.Reference, name string) *core.Reference { n := core.ReferenceName(name) for _, ref := range refs { |