package steam import ( "fmt" "io/ioutil" //"log" ) type Library struct { Folder string Games []string } func ProcessMultipleLibraries(r []string) ([]*Library, error) { var libs []*Library for _, i := range r { lib := &Library{} err := lib.ProcessLibrary(i) if err != nil { return nil, err } libs = append(libs, lib) } return libs, nil } func (s *Library) ProcessLibrary(r string) error { if hasCommon(r) { dirs, err := ioutil.ReadDir(r + "/common") if err != nil { return err } s.Folder = r for _, f := range dirs { if f.IsDir() { // log.Println(*s.Games) s.Games = append(s.Games, f.Name()) } } } return nil } func (s *Library) String() (str string) { str = fmt.Sprintln("----") str = str + fmt.Sprintln(s.Folder) str = str + "----\n" for _, v := range s.Games { str = str + fmt.Sprintln(v) } return } func hasCommon(d string) bool { dirs, err := ioutil.ReadDir(d) if err != nil { return false } for _, f := range dirs { if f.Name() == "common" && f.IsDir() { return true } } return false }