diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2020-11-20 19:56:29 -0500 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2020-11-20 19:56:29 -0500 |
| commit | 971cc396e1d01f53f65a86278fd0ac4490565335 (patch) | |
| tree | 19d0a1e861590b5058ca682c2f5a33828414cf3d /lib/archive/unarchive.go | |
| parent | 9ff47bdc17c70f87c78520d0636b2ff22918a408 (diff) | |
| download | steam-export-971cc396e1d01f53f65a86278fd0ac4490565335.tar.gz steam-export-971cc396e1d01f53f65a86278fd0ac4490565335.tar.xz | |
Reorganize. Update to use go modules.
Diffstat (limited to 'lib/archive/unarchive.go')
| -rw-r--r-- | lib/archive/unarchive.go | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/lib/archive/unarchive.go b/lib/archive/unarchive.go deleted file mode 100644 index 8a5617e..0000000 --- a/lib/archive/unarchive.go +++ /dev/null @@ -1,85 +0,0 @@ -package archive - -import ( - "archive/tar" - fp "path/filepath" - - "compress/gzip" - - "io" - "os" - - "strings" -) - -type Unarchive struct { - Input string - tarReader *tar.Reader -} - -// Extracts a tar arcive to the current working directory -// This will overwrite everything. So be careful -func (u *Unarchive) UnTar(compressionType string) error { - f, err := os.Open(u.Input) - if err != nil { - return err - } - defer f.Close() - - var treader *tar.Reader - - switch compressionType { - case "gz": - gzreader, err := gzip.NewReader(f) - if err != nil { - return err - } - // Read from the gzip reader instead of the file - treader = tar.NewReader(gzreader) - default: - // Read from the file directly - treader = tar.NewReader(f) - } - - for { - hdr, err := treader.Next() - if err == io.EOF { - // We've reached the end! Whoee - break - } - if err != nil { - return err - } - - // Fix windows slashes... - fileName := strings.Replace(hdr.Name, "\\", "/", -1) - - info := hdr.FileInfo() - if info.IsDir() { - // I don't like hard-coded permissions but it - // it helps with overall platform compatibility - if err = os.MkdirAll(fileName, 0775); err != nil { - return err - } - continue - } - - if err = os.MkdirAll(fp.Dir(fileName), 0775); err != nil { - return err - } - - // Create a file handle to work with - // f, err := os.Create(fileName) - f, err := os.OpenFile(fileName, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0664) - if err != nil { - return err - } - defer f.Close() - if _, err := io.Copy(f, treader); err != nil { - return err - } - - } - - return nil -} |
