From cbfd82db8a20be32ffa82a1afa860729f3097de6 Mon Sep 17 00:00:00 2001 From: Mitchell Riedstra Date: Sun, 2 Jan 2022 22:25:11 -0500 Subject: Fix bug in JSON output for errors. Fix extract bug due to unset library path. --- steam/extract.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'steam/extract.go') 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 } -- cgit v1.2.3