diff --git a/src/sync/client.go b/src/sync/client.go index 76f4df5..2c2b2a0 100644 --- a/src/sync/client.go +++ b/src/sync/client.go @@ -414,7 +414,7 @@ func ShearRemoteFromClient(targetLocationIncomplete string) { // RenameRemoteFromClient renames oldLocationIncomplete to newLocationIncomplete on the local system and calls the server to perform the rename remotely and add the old target to the deletions list // can safely be called in offline mode, as well, so this is the intended interface for renaming (RenameLocal should only be used directly by the server binary) func RenameRemoteFromClient(oldLocationIncomplete, newLocationIncomplete string) { - RenameLocal(oldLocationIncomplete, newLocationIncomplete) // move the target on the local system + RenameLocal(oldLocationIncomplete, newLocationIncomplete, false) // move the target on the local system deviceIDList := genDeviceIDList() if len(*deviceIDList) > 0 { // ensure a device ID exists (online mode) diff --git a/src/sync/common.go b/src/sync/common.go index 99fc303..04fb6c8 100644 --- a/src/sync/common.go +++ b/src/sync/common.go @@ -2,10 +2,11 @@ package sync import ( "fmt" - "github.com/rwinkhart/MUTN/src/backend" "io/fs" "os" "strings" + + "github.com/rwinkhart/MUTN/src/backend" ) // getModTimes returns a list of all entry modification times @@ -78,13 +79,14 @@ func ShearLocal(targetLocationIncomplete, clientDeviceID string) string { // RenameLocal renames oldLocationIncomplete to newLocationIncomplete on the local system // this function should only be used directly by the server binary -func RenameLocal(oldLocationIncomplete, newLocationIncomplete string) { +func RenameLocal(oldLocationIncomplete, newLocationIncomplete string, verifyOldLocationExists bool) { // get full paths for both locations oldLocation := backend.TargetLocationFormat(oldLocationIncomplete) newLocation := backend.TargetLocationFormat(newLocationIncomplete) - // ensure oldLocation exists - backend.TargetIsFile(oldLocation, true, 0) + if verifyOldLocationExists { + backend.TargetIsFile(oldLocation, true, 0) + } // ensure newLocation does not exist _, isAccessible := backend.TargetIsFile(newLocation, false, 0)