Commit 61990ff1 authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Check all group files on startup, not just the toplevel directory.

parent 82827453
...@@ -821,32 +821,41 @@ func GetPublic() []Public { ...@@ -821,32 +821,41 @@ func GetPublic() []Public {
} }
func ReadPublicGroups() { func ReadPublicGroups() {
dir, err := os.Open(Directory) err := filepath.Walk(
Directory,
func(path string, fi os.FileInfo, err error) error {
if err != nil { if err != nil {
return log.Printf("Group file %v: %v", path, err)
} }
defer dir.Close() if fi.IsDir() {
return nil
fis, err := dir.Readdir(-1) }
filename, err := filepath.Rel(Directory, path)
if err != nil { if err != nil {
log.Printf("readPublicGroups: %v", err) log.Printf("Group file %v: %v", path, err)
return return nil
} }
if !strings.HasSuffix(filename, ".json") {
for _, fi := range fis { log.Printf(
if !strings.HasSuffix(fi.Name(), ".json") { "Unexpected extension for group file %v",
continue path,
)
return nil
} }
name := fi.Name()[:len(fi.Name())-5] name := filename[:len(filename)-5]
desc, err := GetDescription(name) desc, err := GetDescription(name)
if err != nil { if err != nil {
if !os.IsNotExist(err) { log.Printf("Group file %v: %v", path, err)
log.Printf("Reading group %v: %v", name, err) return nil
}
continue
} }
if desc.Public { if desc.Public {
Add(name, desc) Add(name, desc)
} }
return nil
},
)
if err != nil {
log.Printf("Couldn't read groups: %v", err);
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment