mirror of https://github.com/spf13/afero.git
mem: add rudimentary FileInfo.Sys() implementation
This allows downstream users to act on file ownership. Signed-off-by: Dominik Menke <dom@digineo.de>
This commit is contained in:
parent
5c4385aa20
commit
ade8094005
|
@ -339,7 +339,7 @@ func (s *FileInfo) IsDir() bool {
|
|||
defer s.Unlock()
|
||||
return s.dir
|
||||
}
|
||||
func (s *FileInfo) Sys() interface{} { return nil }
|
||||
|
||||
func (s *FileInfo) Size() int64 {
|
||||
if s.IsDir() {
|
||||
return int64(42)
|
||||
|
@ -349,6 +349,12 @@ func (s *FileInfo) Size() int64 {
|
|||
return int64(len(s.data))
|
||||
}
|
||||
|
||||
func (s *FileInfo) Sys() interface{} {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
return sysFromFileInfo(s)
|
||||
}
|
||||
|
||||
var (
|
||||
ErrFileClosed = errors.New("File is closed")
|
||||
ErrOutOfRange = errors.New("out of range")
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright © 2015 Steve Francia <spf@spf13.com>.
|
||||
// Copyright 2013 tsuru authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package mem
|
||||
|
||||
import "syscall"
|
||||
|
||||
func sysFromFileInfo(s *FileInfo) interface{} {
|
||||
sys := &syscall.Stat_t{
|
||||
Uid: uint32(s.uid),
|
||||
Gid: uint32(s.gid),
|
||||
Size: 42,
|
||||
}
|
||||
if !s.dir {
|
||||
sys.Size = int64(len(s.data))
|
||||
}
|
||||
return sys
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright © 2015 Steve Francia <spf@spf13.com>.
|
||||
// Copyright 2013 tsuru authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package mem
|
||||
|
||||
func sysFromFileInfo(s *FileInfo) interface{} { return nil }
|
Loading…
Reference in New Issue