feat: Add io.Reader-based API to archive cmd

This commit is contained in:
Felicitas Pojtinger
2021-12-15 23:14:22 +01:00
parent 3d4ee0d7ed
commit 129cfab84a
9 changed files with 99 additions and 189 deletions

View File

@@ -1,22 +0,0 @@
//go:build darwin
package statext
import (
"archive/tar"
"syscall"
"golang.org/x/sys/unix"
)
func EnhanceHeader(path string, hdr *tar.Header) error {
var unixStat syscall.Stat_t
if err := syscall.Stat(path, &unixStat); err != nil {
return err
}
hdr.Devmajor = int64(unix.Major(uint64(unixStat.Dev)))
hdr.Devminor = int64(unix.Minor(uint64(unixStat.Dev)))
return nil
}

View File

@@ -1,31 +0,0 @@
//go:build dragonfly
package statext
import (
"archive/tar"
"syscall"
"time"
"golang.org/x/sys/unix"
)
func EnhanceHeader(path string, hdr *tar.Header) error {
var unixStat syscall.Stat_t
if err := syscall.Stat(path, &unixStat); err != nil {
return err
}
mtimesec, mtimensec := unixStat.Mtim.Unix()
atimesec, atimensec := unixStat.Atim.Unix()
ctimesec, ctimensec := unixStat.Ctim.Unix()
hdr.ModTime = time.Unix(mtimesec, mtimensec)
hdr.AccessTime = time.Unix(atimesec, atimensec)
hdr.ChangeTime = time.Unix(ctimesec, ctimensec)
hdr.Devmajor = int64(unix.Major(uint64(unixStat.Dev)))
hdr.Devminor = int64(unix.Minor(uint64(unixStat.Dev)))
return nil
}

View File

@@ -1,22 +0,0 @@
//go:build freebsd
package statext
import (
"archive/tar"
"syscall"
"golang.org/x/sys/unix"
)
func EnhanceHeader(path string, hdr *tar.Header) error {
var unixStat syscall.Stat_t
if err := syscall.Stat(path, &unixStat); err != nil {
return err
}
hdr.Devmajor = int64(unix.Major(unixStat.Dev))
hdr.Devminor = int64(unix.Minor(unixStat.Dev))
return nil
}

View File

@@ -1,31 +0,0 @@
//go:build (linux && amd64) || (linux && 386) || (linux && arm) || (linux && arm64) || (linux && ppc64) || (linux && ppc64le) || (linux && riscv64) || (linux && s390x)
package statext
import (
"archive/tar"
"syscall"
"time"
"golang.org/x/sys/unix"
)
func EnhanceHeader(path string, hdr *tar.Header) error {
var unixStat syscall.Stat_t
if err := syscall.Stat(path, &unixStat); err != nil {
return err
}
mtimesec, mtimensec := unixStat.Mtim.Unix()
atimesec, atimensec := unixStat.Atim.Unix()
ctimesec, ctimensec := unixStat.Ctim.Unix()
hdr.ModTime = time.Unix(mtimesec, mtimensec)
hdr.AccessTime = time.Unix(atimesec, atimensec)
hdr.ChangeTime = time.Unix(ctimesec, ctimensec)
hdr.Devmajor = int64(unix.Major(unixStat.Dev))
hdr.Devminor = int64(unix.Minor(unixStat.Dev))
return nil
}

View File

@@ -1,11 +0,0 @@
//go:build (linux && mips64) || (linux && mips) || (linux && mipsle) || (linux && mips64le) || !(darwin || dragonfly || freebsd || linux)
package statext
import (
"archive/tar"
)
func EnhanceHeader(path string, hdr *tar.Header) error {
return nil
}