1// Copyright 2012 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// +build linux darwin dragonfly freebsd openbsd netbsd solaris 6 7package tar 8 9import ( 10 "os" 11 "syscall" 12) 13 14func init() { 15 sysStat = statUnix 16} 17 18func statUnix(fi os.FileInfo, h *Header) error { 19 sys, ok := fi.Sys().(*syscall.Stat_t) 20 if !ok { 21 return nil 22 } 23 h.Uid = int(sys.Uid) 24 h.Gid = int(sys.Gid) 25 // TODO(bradfitz): populate username & group. os/user 26 // doesn't cache LookupId lookups, and lacks group 27 // lookup functions. 28 h.AccessTime = statAtime(sys) 29 h.ChangeTime = statCtime(sys) 30 // TODO(bradfitz): major/minor device numbers? 31 return nil 32} 33