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)

Uses (16)

Used by (1)