Skip to content

Commit 63c185d

Browse files
committed
content/local: inline sys.StatATimeAsTime()
The sys.StatATimeAsTime() utility is currently only used in a single place, but because it's living in the "sys" package, also brings in other dependencies, such as Microsoft/hcsshim. This patch inlines the code from sys.StatATimeAsTime(), to remove that dependency. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 6883c84 commit 63c185d

File tree

3 files changed

+68
-4
lines changed

3 files changed

+68
-4
lines changed

content/local/store_bsd.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// +build darwin freebsd netbsd
2+
3+
/*
4+
Copyright The containerd Authors.
5+
6+
Licensed under the Apache License, Version 2.0 (the "License");
7+
you may not use this file except in compliance with the License.
8+
You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
*/
18+
19+
package local
20+
21+
import (
22+
"os"
23+
"syscall"
24+
"time"
25+
)
26+
27+
func getATime(fi os.FileInfo) time.Time {
28+
if st, ok := fi.Sys().(*syscall.Stat_t); ok {
29+
return time.Unix(int64(st.Atimespec.Sec), int64(st.Atimespec.Nsec)) //nolint: unconvert // int64 conversions ensure the line compiles for 32-bit systems as well.
30+
}
31+
32+
return fi.ModTime()
33+
}

content/local/store_openbsd.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// +build openbsd
2+
3+
/*
4+
Copyright The containerd Authors.
5+
6+
Licensed under the Apache License, Version 2.0 (the "License");
7+
you may not use this file except in compliance with the License.
8+
You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
*/
18+
19+
package local
20+
21+
import (
22+
"os"
23+
"syscall"
24+
"time"
25+
)
26+
27+
func getATime(fi os.FileInfo) time.Time {
28+
if st, ok := fi.Sys().(*syscall.Stat_t); ok {
29+
return time.Unix(int64(st.Atim.Sec), int64(st.Atim.Nsec)) //nolint: unconvert // int64 conversions ensure the line compiles for 32-bit systems as well.
30+
}
31+
32+
return fi.ModTime()
33+
}

content/local/store_unix.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// +build linux solaris darwin freebsd netbsd openbsd
1+
// +build linux solaris
22

33
/*
44
Copyright The containerd Authors.
@@ -22,13 +22,11 @@ import (
2222
"os"
2323
"syscall"
2424
"time"
25-
26-
"github.com/containerd/containerd/sys"
2725
)
2826

2927
func getATime(fi os.FileInfo) time.Time {
3028
if st, ok := fi.Sys().(*syscall.Stat_t); ok {
31-
return sys.StatATimeAsTime(st)
29+
return time.Unix(int64(st.Atim.Sec), int64(st.Atim.Nsec)) //nolint: unconvert // int64 conversions ensure the line compiles for 32-bit systems as well.
3230
}
3331

3432
return fi.ModTime()

0 commit comments

Comments
 (0)