File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -339,7 +339,7 @@ func (s *FileInfo) IsDir() bool {
339339 defer s .Unlock ()
340340 return s .dir
341341}
342- func ( s * FileInfo ) Sys () interface {} { return nil }
342+
343343func (s * FileInfo ) Size () int64 {
344344 if s .IsDir () {
345345 return int64 (42 )
@@ -349,6 +349,12 @@ func (s *FileInfo) Size() int64 {
349349 return int64 (len (s .data ))
350350}
351351
352+ func (s * FileInfo ) Sys () interface {} {
353+ s .Lock ()
354+ defer s .Unlock ()
355+ return sysFromFileInfo (s )
356+ }
357+
352358var (
353359 ErrFileClosed = errors .New ("File is closed" )
354360 ErrOutOfRange = errors .New ("out of range" )
Original file line number Diff line number Diff line change 1+ // Copyright © 2015 Steve Francia <spf@spf13.com>.
2+ // Copyright 2013 tsuru authors. All rights reserved.
3+ //
4+ // Licensed under the Apache License, Version 2.0 (the "License");
5+ // you may not use this file except in compliance with the License.
6+ // You may obtain a copy of the License at
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ //go:build !windows
16+ // +build !windows
17+
18+ package mem
19+
20+ import "syscall"
21+
22+ func sysFromFileInfo (s * FileInfo ) interface {} {
23+ sys := & syscall.Stat_t {
24+ Uid : uint32 (s .uid ),
25+ Gid : uint32 (s .gid ),
26+ Size : 42 ,
27+ }
28+ if ! s .dir {
29+ sys .Size = int64 (len (s .data ))
30+ }
31+ return sys
32+ }
Original file line number Diff line number Diff line change 1+ // Copyright © 2015 Steve Francia <spf@spf13.com>.
2+ // Copyright 2013 tsuru authors. All rights reserved.
3+ //
4+ // Licensed under the Apache License, Version 2.0 (the "License");
5+ // you may not use this file except in compliance with the License.
6+ // You may obtain a copy of the License at
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ //go:build windows
16+ // +build windows
17+
18+ package mem
19+
20+ func sysFromFileInfo (s * FileInfo ) interface {} { return nil }
You can’t perform that action at this time.
0 commit comments