From 6acceb7b7404f2f71541d8a1cccc4758d1f80735 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Fri, 30 Dec 2016 22:32:01 -0500 Subject: Initial --- steam/steam.go | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 steam/steam.go (limited to 'steam/steam.go') diff --git a/steam/steam.go b/steam/steam.go new file mode 100644 index 0000000..b8052ec --- /dev/null +++ b/steam/steam.go @@ -0,0 +1,65 @@ +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 +} -- cgit v1.2.3