summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt38
-rw-r--r--libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt1
2 files changed, 5 insertions, 34 deletions
diff --git a/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt
index 6aeb895..7cf7690 100644
--- a/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt
@@ -3,13 +3,9 @@ package org.the_jk.cleversync.io.local
import org.the_jk.cleversync.io.ModifiableFile
import java.io.InputStream
import java.io.OutputStream
-import java.nio.file.Files
-import java.nio.file.LinkOption
import java.nio.file.Path
-import java.nio.file.StandardCopyOption
import java.nio.file.StandardOpenOption
import java.time.Instant
-import kotlin.io.path.exists
import kotlin.io.path.fileSize
import kotlin.io.path.getLastModifiedTime
import kotlin.io.path.inputStream
@@ -18,35 +14,11 @@ import kotlin.io.path.outputStream
internal class PathFile(internal val path: Path) : ModifiableFile {
override fun write(): OutputStream {
- // If file doesn't exist, write to it directly.
- if (!path.exists(LinkOption.NOFOLLOW_LINKS))
- return path.outputStream(StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)
-
- // Otherwise, write to temp file, only overwriting when done.
- val tmp = path.parent.resolve(".#" + path.name)
- val os = tmp.outputStream(StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)
- return object : OutputStream() {
- override fun write(value: Int) {
- os.write(value)
- }
-
- override fun write(b: ByteArray) {
- os.write(b)
- }
-
- override fun write(b: ByteArray, off: Int, len: Int) {
- os.write(b, off, len)
- }
-
- override fun flush() {
- os.flush()
- }
-
- override fun close() {
- os.close()
- Files.move(tmp, path, StandardCopyOption.ATOMIC_MOVE)
- }
- }
+ return path.outputStream(
+ StandardOpenOption.CREATE,
+ StandardOpenOption.WRITE,
+ StandardOpenOption.TRUNCATE_EXISTING,
+ )
}
override val name: String
diff --git a/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt b/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt
index 21002e3..a7d0afa 100644
--- a/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt
+++ b/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt
@@ -98,7 +98,6 @@ class LocalTreeTest {
os.write(127)
os.write(byteArrayOf(1))
os.write(byteArrayOf(2), 0, 0)
- assertThat(foo.size).isEqualTo(4.toULong())
}
assertThat(foo.size).isEqualTo(2.toULong())
assertThat(tree.list().files).hasSize(1)