aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/osutil
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-01-17 10:23:56 +0100
committerDmitry Vyukov <dvyukov@google.com>2025-01-17 10:17:44 +0000
commit953d1c45a16b7284725e337b47369a8ab111bab4 (patch)
tree9e6f77d744cd85ff1def42ce3864e7c6f0541ccd /pkg/osutil
parentbb91bdd45a9407e6594eb36266e74db1e50210a0 (diff)
pkg/manager: show bug first time
This allows to understand if a bug is new (found in the current run) or old.
Diffstat (limited to 'pkg/osutil')
-rw-r--r--pkg/osutil/osutil.go6
-rw-r--r--pkg/osutil/osutil_bsd.go5
-rw-r--r--pkg/osutil/osutil_darwin.go5
-rw-r--r--pkg/osutil/osutil_fuchsia.go5
-rw-r--r--pkg/osutil/osutil_linux.go5
-rw-r--r--pkg/osutil/osutil_windows.go5
6 files changed, 31 insertions, 0 deletions
diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go
index f4a3cac18..c9ee98412 100644
--- a/pkg/osutil/osutil.go
+++ b/pkg/osutil/osutil.go
@@ -351,6 +351,12 @@ func Abs(path string) string {
return filepath.Clean(path)
}
+// CreationTime returns file creation time.
+// May return zero time, if not known.
+func CreationTime(fi os.FileInfo) time.Time {
+ return creationTime(fi)
+}
+
// MonotonicNano returns monotonic time in nanoseconds from some unspecified point in time.
// Useful mostly to measure time intervals.
// This function should be used inside of tested VMs b/c time.Now may reject to use monotonic time
diff --git a/pkg/osutil/osutil_bsd.go b/pkg/osutil/osutil_bsd.go
index b54c9126f..b26c91ff7 100644
--- a/pkg/osutil/osutil_bsd.go
+++ b/pkg/osutil/osutil_bsd.go
@@ -8,8 +8,13 @@ package osutil
import (
"os"
"os/exec"
+ "time"
)
+func creationTime(fi os.FileInfo) time.Time {
+ return time.Time{}
+}
+
func RemoveAll(dir string) error {
return os.RemoveAll(dir)
}
diff --git a/pkg/osutil/osutil_darwin.go b/pkg/osutil/osutil_darwin.go
index 22c667ed7..0b1f30711 100644
--- a/pkg/osutil/osutil_darwin.go
+++ b/pkg/osutil/osutil_darwin.go
@@ -6,8 +6,13 @@ package osutil
import (
"os"
"os/exec"
+ "time"
)
+func creationTime(fi os.FileInfo) time.Time {
+ return time.Time{}
+}
+
func RemoveAll(dir string) error {
return os.RemoveAll(dir)
}
diff --git a/pkg/osutil/osutil_fuchsia.go b/pkg/osutil/osutil_fuchsia.go
index 4103e7f52..1ebd64eb4 100644
--- a/pkg/osutil/osutil_fuchsia.go
+++ b/pkg/osutil/osutil_fuchsia.go
@@ -9,8 +9,13 @@ import (
"fmt"
"os"
"os/exec"
+ "time"
)
+func creationTime(fi os.FileInfo) time.Time {
+ return time.Time{}
+}
+
func HandleInterrupts(shutdown chan struct{}) {
}
diff --git a/pkg/osutil/osutil_linux.go b/pkg/osutil/osutil_linux.go
index 6585713ac..63743a5f2 100644
--- a/pkg/osutil/osutil_linux.go
+++ b/pkg/osutil/osutil_linux.go
@@ -17,6 +17,11 @@ import (
"golang.org/x/sys/unix"
)
+func creationTime(fi os.FileInfo) time.Time {
+ st := fi.Sys().(*syscall.Stat_t)
+ return time.Unix(int64(st.Ctim.Sec), int64(st.Ctim.Nsec)) // nolint: unconvert
+}
+
// RemoveAll is similar to os.RemoveAll, but can handle more cases.
func RemoveAll(dir string) error {
files, _ := os.ReadDir(dir)
diff --git a/pkg/osutil/osutil_windows.go b/pkg/osutil/osutil_windows.go
index 8a0e8b77a..c5763b677 100644
--- a/pkg/osutil/osutil_windows.go
+++ b/pkg/osutil/osutil_windows.go
@@ -8,8 +8,13 @@ import (
"os"
"os/exec"
"syscall"
+ "time"
)
+func creationTime(fi os.FileInfo) time.Time {
+ return time.Time{}
+}
+
func HandleInterrupts(shutdown chan struct{}) {
}