aboutsummaryrefslogtreecommitdiff
path: root/steam/steam.go
diff options
context:
space:
mode:
Diffstat (limited to 'steam/steam.go')
-rw-r--r--steam/steam.go123
1 files changed, 0 insertions, 123 deletions
diff --git a/steam/steam.go b/steam/steam.go
deleted file mode 100644
index ea27e5a..0000000
--- a/steam/steam.go
+++ /dev/null
@@ -1,123 +0,0 @@
-// This is designed to be a rather simplistic library to help pull information
-// from a local steam library
-package steam
-
-import (
- "fmt"
- "io/ioutil"
-
- "errors"
-
- "bufio"
- "os"
- "path/filepath"
- "strings"
- // "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
-}
-
-// Populate the "Folder" and "Games" fields based on the provided directory
-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() {
- s.Games = append(s.Games, f.Name())
- }
- }
- } else {
- return errors.New(fmt.Sprintf("No common directory in: %s", r))
- }
- return nil
-}
-
-// Find the ACF files related to this video game
-func (l *Library) FindACF(g string) (string, error) {
- working_dir, err := os.Getwd()
- if err != nil {
- return "", err
- }
- if err = os.Chdir(l.Folder); err != nil {
- return "", err
- }
- files, err := filepath.Glob("*.acf")
- if err != nil {
- return "", err
- }
- for _, fn := range files {
- info, err := os.Lstat(fn)
- if err != nil {
- return "", err
- }
- // We don't want it if it's a directory
- if info.IsDir() {
- continue
- }
-
- // Open up the file
- f, err := os.Open(fn)
- defer f.Close()
- if err != nil {
- return "", err
- }
- scanner := bufio.NewScanner(f)
- for scanner.Scan() {
- // Finally check and see if the file has the video game name
- if strings.Contains(scanner.Text(), g) {
- os.Chdir(working_dir)
- return fn, nil
- // fmt.Printf("%s/%s:%d: %s\n", root, path, i, scanner.Text())
- }
- }
-
- }
- str := "Couldn't find ACF file related to Game: %s"
- return "", errors.New(fmt.Sprintf(str, g))
-}
-
-// This is automatically called to print out the contents of the struct
-// when things like fmt.Println are used
-func (s *Library) String() (str string) {
- str = fmt.Sprintln("\n----")
- str = str + fmt.Sprintln(s.Folder)
- str = str + "\n----\n"
- for k, v := range s.Games {
- str = str + fmt.Sprintf("%d: %s\n", k, v)
- //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
-}