diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2018-03-07 14:23:56 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2018-03-08 19:03:09 +0300 |
commit | 1b45fd2c9a9d0e4bc39516c257115c6186d103b2 (patch) | |
tree | 48aa2d9da46f2941e4c5eec7ffc2f01d46b7b5ea /domains.go | |
parent | a7cc1032a847c0eb858d3869a48e9a686845e200 (diff) |
Use godirwak.ReadDirents
Diffstat (limited to 'domains.go')
-rw-r--r-- | domains.go | 26 |
1 files changed, 10 insertions, 16 deletions
@@ -8,7 +8,9 @@ import ( "strings" "time" + "github.com/karrick/godirwalk" log "github.com/sirupsen/logrus" + "gitlab.com/gitlab-org/gitlab-pages/metrics" ) @@ -76,21 +78,15 @@ func (d domains) readProject(rootDomain, group, projectName string) { return } - if _, err := os.Lstat(filepath.Join(group, projectName, "public")); err != nil { + if _, err := os.Lstat(filepath.Join(rootDir, group, projectName, "public")); err != nil { return } d.readProjectConfig(rootDomain, group, projectName) } -func (d domains) readProjects(rootDomain, group string) { - projects, err := os.Open(group) - if err != nil { - return - } - defer projects.Close() - - fis, err := projects.Readdir(0) +func (d domains) readProjects(rootDomain, group string, buf []byte) { + fis, err := godirwalk.ReadDirents(filepath.Join(rootDir, group), buf) if err != nil { log.WithError(err).WithFields(log.Fields{ "group": group, @@ -108,14 +104,12 @@ func (d domains) readProjects(rootDomain, group string) { } } +var rootDir = "." + func (d domains) ReadGroups(rootDomain string) error { - groups, err := os.Open(".") - if err != nil { - return err - } - defer groups.Close() + buf := make([]byte, 2*os.Getpagesize()) - fis, err := groups.Readdir(0) + fis, err := godirwalk.ReadDirents(rootDir, buf) if err != nil { return err } @@ -128,7 +122,7 @@ func (d domains) ReadGroups(rootDomain string) error { continue } - d.readProjects(rootDomain, group.Name()) + d.readProjects(rootDomain, group.Name(), buf) } return nil |