mirror of
https://github.com/TECHNOFAB11/jsonnet-bundler.git
synced 2025-12-12 16:10:04 +01:00
Merge pull request #51 from davidovich/restore-symlinks
restore symlinks from tar archive
This commit is contained in:
commit
766a0c7fd8
1 changed files with 11 additions and 4 deletions
15
pkg/git.go
15
pkg/git.go
|
|
@ -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:
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue