Skip to content

Commit

Permalink
Merge pull request #51 from davidovich/restore-symlinks
Browse files Browse the repository at this point in the history
restore symlinks from tar archive
  • Loading branch information
brancz committed Oct 25, 2019
2 parents 32baadd + f3c21ba commit 766a0c7
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions pkg/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,8 @@ func gzipUntar(dst string, r io.Reader, subDir string) error {

// create directories as needed
case tar.TypeDir:
if _, err := os.Stat(target); err != nil {
if err := os.MkdirAll(target, os.FileMode(header.Mode)); err != nil {
return err
}
if err := os.MkdirAll(target, os.FileMode(header.Mode)); err != nil {
return err
}

case tar.TypeReg:
Expand All @@ -139,6 +137,15 @@ func gzipUntar(dst string, r io.Reader, subDir string) error {
// Using defer would accumulate an unbounded quantity of
// handles and release them all at once at function end.
f.Close()

case tar.TypeSymlink:
if err := os.MkdirAll(filepath.Dir(target), os.FileMode(header.Mode)); err != nil {
return err
}

if err := os.Symlink(header.Linkname, target); err != nil {
return err
}
}
}
}
Expand Down

0 comments on commit 766a0c7

Please sign in to comment.