walk netdb dir

This commit is contained in:
Matt Drollette
2014-12-13 13:58:26 -06:00
parent fd1f14f858
commit ffab6ad5e9

View File

@@ -195,33 +195,29 @@ func NewLocalNetDb(path string) *LocalNetDbImpl {
} }
func (db *LocalNetDbImpl) RouterInfos() (routerInfos []routerInfo, err error) { func (db *LocalNetDbImpl) RouterInfos() (routerInfos []routerInfo, err error) {
var src []os.FileInfo
if src, err = ioutil.ReadDir(db.Path); nil != err {
return
}
// randomize the file order
files := make([]os.FileInfo, len(src))
perm := rand.Perm(len(src))
for i, v := range perm {
files[v] = src[i]
}
r, _ := regexp.Compile("^routerInfo-[A-Za-z0-9-=~]+.dat$") r, _ := regexp.Compile("^routerInfo-[A-Za-z0-9-=~]+.dat$")
for _, file := range files { files := make(map[string]os.FileInfo)
if r.MatchString(file.Name()) { walkpath := func(path string, f os.FileInfo, err error) error {
riBytes, err := ioutil.ReadFile(filepath.Join(db.Path, file.Name())) if r.MatchString(f.Name()) {
if nil != err { files[path] = f
log.Println(err)
continue
}
routerInfos = append(routerInfos, routerInfo{
Name: file.Name(),
Data: riBytes,
})
} }
return nil
}
filepath.Walk(db.Path, walkpath)
for path, file := range files {
riBytes, err := ioutil.ReadFile(path)
if nil != err {
log.Println(err)
continue
}
routerInfos = append(routerInfos, routerInfo{
Name: file.Name(),
Data: riBytes,
})
} }
return return