2020-09-11 00:11:47 +08:00
|
|
|
// +build !windows,!plan9
|
2017-02-25 12:06:51 +08:00
|
|
|
|
|
|
|
|
package sftp
|
|
|
|
|
|
2017-03-02 11:51:32 +08:00
|
|
|
import (
|
|
|
|
|
"errors"
|
2022-10-14 18:33:40 +08:00
|
|
|
"path"
|
|
|
|
|
"path/filepath"
|
2017-03-02 11:51:32 +08:00
|
|
|
"syscall"
|
|
|
|
|
)
|
2017-02-25 12:06:51 +08:00
|
|
|
|
|
|
|
|
func fakeFileInfoSys() interface{} {
|
|
|
|
|
return &syscall.Stat_t{Uid: 65534, Gid: 65534}
|
|
|
|
|
}
|
2017-03-02 11:51:32 +08:00
|
|
|
|
|
|
|
|
func testOsSys(sys interface{}) error {
|
|
|
|
|
fstat := sys.(*FileStat)
|
|
|
|
|
if fstat.UID != uint32(65534) {
|
2019-08-30 23:04:37 +08:00
|
|
|
return errors.New("Uid failed to match")
|
2017-03-02 11:51:32 +08:00
|
|
|
}
|
|
|
|
|
if fstat.GID != uint32(65534) {
|
2019-08-30 23:04:37 +08:00
|
|
|
return errors.New("Gid failed to match")
|
2017-03-02 11:51:32 +08:00
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
2021-06-29 23:16:15 +08:00
|
|
|
|
2022-10-14 18:33:40 +08:00
|
|
|
func toLocalPath(workDir, p string) string {
|
|
|
|
|
if workDir != "" {
|
|
|
|
|
if !filepath.IsAbs(p) && !path.IsAbs(p) {
|
|
|
|
|
// Ensure input is always in the same format.
|
|
|
|
|
p = filepath.ToSlash(p)
|
|
|
|
|
p = path.Join(workDir, p)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-29 23:16:15 +08:00
|
|
|
return p
|
|
|
|
|
}
|