mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-13 16:37:27 +00:00
DRYer
This commit is contained in:
parent
5a6c2d9f3b
commit
50b830faa5
1 changed files with 8 additions and 8 deletions
|
|
@ -29,13 +29,13 @@ func ExtractAllFromTar(tr *tar.Reader, dest_path string, optss ...TarExtractOpti
|
|||
return
|
||||
}
|
||||
|
||||
mode := func(hdr *tar.Header) fs.FileMode {
|
||||
return fs.FileMode(hdr.Mode) & (fs.ModePerm | fs.ModeSetgid | fs.ModeSetuid | fs.ModeSticky)
|
||||
mode := func(hdr int64) fs.FileMode {
|
||||
return fs.FileMode(hdr) & (fs.ModePerm | fs.ModeSetgid | fs.ModeSetuid | fs.ModeSticky)
|
||||
}
|
||||
|
||||
set_metadata := func(chmod func(mode fs.FileMode) error, hdr *tar.Header) (err error) {
|
||||
set_metadata := func(chmod func(mode fs.FileMode) error, hdr_mode int64) (err error) {
|
||||
if !opts.DontPreservePermissions && chmod != nil {
|
||||
perms := mode(hdr)
|
||||
perms := mode(hdr_mode)
|
||||
if err = chmod(perms); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -76,7 +76,7 @@ func ExtractAllFromTar(tr *tar.Reader, dest_path string, optss ...TarExtractOpti
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
if err = set_metadata(func(m fs.FileMode) error { return os.Chmod(dest, m) }, hdr); err != nil {
|
||||
if err = set_metadata(func(m fs.FileMode) error { return os.Chmod(dest, m) }, hdr.Mode); err != nil {
|
||||
return
|
||||
}
|
||||
case tar.TypeReg:
|
||||
|
|
@ -87,7 +87,7 @@ func ExtractAllFromTar(tr *tar.Reader, dest_path string, optss ...TarExtractOpti
|
|||
if d, err = os.Create(dest); err != nil {
|
||||
return
|
||||
}
|
||||
err = set_metadata(d.Chmod, hdr)
|
||||
err = set_metadata(d.Chmod, hdr.Mode)
|
||||
if err == nil {
|
||||
_, err = io.Copy(d, tr)
|
||||
}
|
||||
|
|
@ -110,7 +110,7 @@ func ExtractAllFromTar(tr *tar.Reader, dest_path string, optss ...TarExtractOpti
|
|||
if err = os.Link(link_target, dest); err != nil {
|
||||
return
|
||||
}
|
||||
if err = set_metadata(func(m fs.FileMode) error { return os.Chmod(dest, m) }, hdr); err != nil {
|
||||
if err = set_metadata(func(m fs.FileMode) error { return os.Chmod(dest, m) }, hdr.Mode); err != nil {
|
||||
return
|
||||
}
|
||||
case tar.TypeSymlink:
|
||||
|
|
@ -128,7 +128,7 @@ func ExtractAllFromTar(tr *tar.Reader, dest_path string, optss ...TarExtractOpti
|
|||
if err = os.Symlink(link_target, dest); err != nil {
|
||||
return
|
||||
}
|
||||
if err = set_metadata(nil, hdr); err != nil {
|
||||
if err = set_metadata(nil, hdr.Mode); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue