mirror of
				https://github.com/restic/restic.git
				synced 2025-10-30 21:01:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			744 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			744 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // +build !windows,!darwin,!freebsd,!netbsd
 | |
| 
 | |
| package fs
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"syscall"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // extendedStat extracts info into an ExtendedFileInfo for unix based operating systems.
 | |
| func extendedStat(fi os.FileInfo) ExtendedFileInfo {
 | |
| 	s, ok := fi.Sys().(*syscall.Stat_t)
 | |
| 	if !ok {
 | |
| 		panic(fmt.Sprintf("conversion to syscall.Stat_t failed, type is %T", fi.Sys()))
 | |
| 	}
 | |
| 
 | |
| 	extFI := ExtendedFileInfo{
 | |
| 		FileInfo:  fi,
 | |
| 		DeviceID:  uint64(s.Dev),
 | |
| 		Inode:     s.Ino,
 | |
| 		Links:     uint64(s.Nlink),
 | |
| 		UID:       s.Uid,
 | |
| 		GID:       s.Gid,
 | |
| 		Device:    uint64(s.Rdev),
 | |
| 		BlockSize: int64(s.Blksize),
 | |
| 		Blocks:    s.Blocks,
 | |
| 		Size:      s.Size,
 | |
| 
 | |
| 		AccessTime: time.Unix(s.Atim.Unix()),
 | |
| 		ModTime:    time.Unix(s.Mtim.Unix()),
 | |
| 	}
 | |
| 
 | |
| 	return extFI
 | |
| }
 | 
