From 26d142316f5d3bd7f5e2086bb4b6a31b98933e48 Mon Sep 17 00:00:00 2001 From: Felix Pojtinger Date: Tue, 21 Dec 2021 00:18:46 +0100 Subject: [PATCH] feat: Implement `Chtimes` for files and directories --- internal/fs/filesystem.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/internal/fs/filesystem.go b/internal/fs/filesystem.go index b7692d7..bcfa3f5 100644 --- a/internal/fs/filesystem.go +++ b/internal/fs/filesystem.go @@ -239,7 +239,25 @@ func (f *FileSystem) Chown(name string, uid, gid int) error { func (f *FileSystem) Chtimes(name string, atime time.Time, mtime time.Time) error { log.Println("FileSystem.Chtimes", name, atime, mtime) - panic(ErrNotImplemented) + hdr, err := inventory.Stat( + f.metadata, + + name, + + f.onHeader, + ) + if err != nil { + if err == sql.ErrNoRows { + return os.ErrNotExist + } + + panic(err) + } + + hdr.AccessTime = atime + hdr.ModTime = mtime + + return f.updateMetadata(hdr) } func (f *FileSystem) LstatIfPossible(name string) (os.FileInfo, bool, error) {