aboutsummaryrefslogtreecommitdiff
path: root/steam/extract.go
diff options
context:
space:
mode:
Diffstat (limited to 'steam/extract.go')
-rw-r--r--steam/extract.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/steam/extract.go b/steam/extract.go
index d93428d..45a760b 100644
--- a/steam/extract.go
+++ b/steam/extract.go
@@ -154,6 +154,7 @@ func (l *Library) extractPrimitive(j *Job, g *Game, r io.Reader) (*Game, error)
break
}
if err != nil {
+ err = fmt.Errorf("tar reader: %w", err)
j.addError(err)
return nil, err
}
@@ -171,10 +172,9 @@ func (l *Library) extractPrimitive(j *Job, g *Game, r io.Reader) (*Game, error)
info := hdr.FileInfo()
if info.IsDir() {
- // I don't like hard-coded permissions but it
- // it helps with overall platform compatibility
err = os.MkdirAll(fileName, defaultDirectoryMode)
if err != nil {
+ err = fmt.Errorf("os.MkDirAll for directory: %w", err)
j.addError(err)
return nil, err
}
@@ -184,6 +184,7 @@ func (l *Library) extractPrimitive(j *Job, g *Game, r io.Reader) (*Game, error)
err = os.MkdirAll(filepath.Dir(fileName), defaultDirectoryMode)
if err != nil {
+ err = fmt.Errorf("os.MkDirAll for file: %w", err)
j.addError(err)
return nil, err
}
@@ -193,10 +194,13 @@ func (l *Library) extractPrimitive(j *Job, g *Game, r io.Reader) (*Game, error)
defaultFileMode)
if err != nil {
+ err = fmt.Errorf(
+ "while opening file handle for tarball extraction: %w", err)
j.addError(err)
return nil, err
}
if _, err := io.Copy(f, treader); err != nil {
+ err = fmt.Errorf("while copying from treader: %w", err)
j.addError(err)
f.Close()
return nil, err
@@ -205,8 +209,13 @@ func (l *Library) extractPrimitive(j *Job, g *Game, r io.Reader) (*Game, error)
}
+ if g.LibraryPath == "" {
+ g.LibraryPath = l.folder
+ }
+
err := g.SetSizeInfo()
if err != nil {
+ err = fmt.Errorf("while setting size info: %w", err)
j.addError(err)
return nil, err
}