aboutsummaryrefslogtreecommitdiff
path: root/steam/package.go
diff options
context:
space:
mode:
Diffstat (limited to 'steam/package.go')
-rw-r--r--steam/package.go61
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
+}
+*/