def publish.rename
mylsm-lsm-store@0.6.0.1 · src/transfer/BackupIo.bend:101
import mylsm-lsm-store@0.6.0.1/src/transfer/BackupIo.bend as BackupIo
import Base
import mylsm-lsm-store@0.6.0.1/src/transfer/PublicationPolicy.bend as PublicationPolicy
import mylsm-lsm-store@0.6.0.1/src/CrashPoint.bend as CrashPoint
import mylsm-lsm-store@0.6.0.1/src/Fs.bend as Fs
101def publish.rename(
102 +destination: String,
103 +temporary: String,
104 result: Result<&1, &1, U32 & String, Unit>
105) -> IO(Result<&1, &1, Error, Unit>):
106 match result:
107 case Fail{error}:
108 publish.rename.failed(temporary,
109 PublicationPolicy.failure(PublicationPolicy.BeforeRename{}), error)
110 case Done{Unit{}}:
111 do IO<Result<&1, &1, Error, Unit>>:
112 _stopped : Result<&1, &1, U32 & String, Unit> <- CrashPoint.hit("backup.renamed")
113 synced : Result<&1, &1, U32 & String, Unit> <- Fs.fsync(path.clone(destination ++ "/.."))
114 publish.parent(temporary, synced)