diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2017-01-16 11:30:06 -0500 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2017-01-16 11:30:06 -0500 |
| commit | d5679be63fe396b5bcd2f01b76799a17a64a83d4 (patch) | |
| tree | b32e44dc01738a7bbfd44e50ed8ef7b3d6ca667c /steam/package.go | |
| parent | ab2338daadbb826063c1ff299a9e39bb41e40317 (diff) | |
| download | steam-export-d5679be63fe396b5bcd2f01b76799a17a64a83d4.tar.gz steam-export-d5679be63fe396b5bcd2f01b76799a17a64a83d4.tar.xz | |
Added ability to extract games. Initial code to delete games. Initial basic progress on a command line application.
Diffstat (limited to 'steam/package.go')
| -rw-r--r-- | steam/package.go | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/steam/package.go b/steam/package.go index 72d29ee..8a4ff8b 100644 --- a/steam/package.go +++ b/steam/package.go @@ -1,27 +1,30 @@ package steam import ( - // "fmt" "git.riedstra.us/mitch/steam-export/archive" "os" - // "strings" + "path/filepath" ) -func (l *Library) PackageGame(g string) error { +func (l *Library) PackageGameToFile(index int, file string) error { + g := l.Games[index] + working_dir, err := os.Getwd() if err != nil { return err } - output := working_dir + "/" + g + ".tar" + // output := working_dir + "/" + g + ".tar" + output, err := filepath.Abs(file) + if err != nil { + return err + } os.Chdir(l.Folder) acf, err := l.FindACF(g) if err != nil { return err } - // acf = strings.Replace(acf, l.Folder, "", -1) input := []string{"common/" + g, acf} - // fmt.Fprintf(os.Stderr, "input arguments for archive: %s\n", input) a := archive.Archive{Output: output, Input: input} err = a.Tar() if err != nil { @@ -32,3 +35,49 @@ func (l *Library) PackageGame(g string) error { return nil } + +func (l *Library) ExtractGameFromFile(f string) error { + working_dir, err := os.Getwd() + if err != nil { + return err + } + + f, err = filepath.Abs(f) + if err != nil { + return err + } + + if err = os.Chdir(l.Folder); err != nil { + return err + } + u := &archive.Unarchive{ + Input: f, + } + if err := u.UnTar(); err != nil { + return err + } + + if err = os.Chdir(working_dir); err != nil { + return err + } + return nil +} + +/* +func (l *Library) DeleteGame(i index) error { + g := l.Games[i] + + working_dir, err := os.Getwd() + if err != nil { + return err + } + + // os.RemoveAll() + + if err = os.Chdir(working_dir); err != nil { + return err + } + + return nil +} +*/ |
