From ee41b427e09a816245a77fac672643a57a46a3cf Mon Sep 17 00:00:00 2001 From: Leonid Nikitin Date: Mon, 27 Apr 2026 23:38:03 +0500 Subject: [PATCH] Add safety check and state tracking in File's Move method --- internal/pkg/file.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/pkg/file.go b/internal/pkg/file.go index 42ec7d2..73dcbfc 100644 --- a/internal/pkg/file.go +++ b/internal/pkg/file.go @@ -2,6 +2,7 @@ package pkg import ( "crypto/rand" + "fmt" "os" "path/filepath" "time" @@ -47,5 +48,14 @@ func (f *File) Remove() error { } func (f *File) Move(path string) error { - return os.Rename(f.filepath, path) + if f.isMoved { + return fmt.Errorf("file already moved") + } + + if err := os.Rename(f.filepath, path); err != nil { + return err + } + + f.isMoved = true + return nil }