Temporary files are now deleted when exiting the app

This commit is contained in:
Abdelilah El Aissaoui 2022-02-04 01:34:22 +01:00
parent 762aa7a9d1
commit fc4d52b57a
3 changed files with 26 additions and 3 deletions

View File

@ -0,0 +1,20 @@
package app
import app.di.TabScope
import javax.inject.Inject
import kotlin.io.path.createTempDirectory
import kotlin.io.path.deleteIfExists
@TabScope
class TempFilesManager @Inject constructor() {
val tempDir by lazy {
val tempDirPath = createTempDirectory("gitnuro_")
tempDirPath.toFile().deleteOnExit()
tempDirPath
}
fun removeTempDir() {
tempDir.deleteIfExists()
}
}

View File

@ -1,5 +1,6 @@
package app.git
import app.TempFilesManager
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import org.eclipse.jgit.diff.ContentSource
@ -14,14 +15,14 @@ import org.eclipse.jgit.util.LfsFactory
import java.io.FileOutputStream
import java.nio.file.Path
import kotlin.io.path.absolutePathString
import kotlin.io.path.createTempDirectory
import kotlin.io.path.createTempFile
private const val DEFAULT_BINARY_FILE_THRESHOLD = PackConfig.DEFAULT_BIG_FILE_THRESHOLD
class RawFileManager @AssistedInject constructor(
@Assisted private val repository: Repository
@Assisted private val repository: Repository,
private val tempFilesManager: TempFilesManager,
) : AutoCloseable {
private var reader: ObjectReader = repository.newObjectReader()
private var source: ContentSource.Pair
@ -75,8 +76,10 @@ class RawFileManager @AssistedInject constructor(
): EntryContent.ImageBinary {
println("Data's size is ${ldr.size}")
val tempDir = createTempDirectory("gitnuro${repository.directory.absolutePath.replace("/", "_")}")
val tempDir = tempFilesManager.tempDir
val tempFile = createTempFile(tempDir, prefix = "${entry.newPath.replace("/", "_")}_${side.name}")
tempFile.toFile().deleteOnExit()
println("Temp file generated: ${tempFile.absolutePathString()}")
val out = FileOutputStream(tempFile.toFile())