Skip to content

Commit

Permalink
Add logs for file deletion
Browse files Browse the repository at this point in the history
  • Loading branch information
sdercolin committed Nov 19, 2023
1 parent 1b14355 commit 5efaff7
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.sdercolin.vlabeler.env.Log
import com.sdercolin.vlabeler.model.AppConf
import com.sdercolin.vlabeler.model.Project
import com.sdercolin.vlabeler.model.SampleInfo
import com.sdercolin.vlabeler.util.deleteRecursivelyLogged
import com.sdercolin.vlabeler.util.findUnusedFile
import com.sdercolin.vlabeler.util.getCacheDir
import com.sdercolin.vlabeler.util.parseJson
Expand Down Expand Up @@ -59,7 +60,7 @@ object ChartRepository {
cacheParamsFile.takeIf { it.exists() }?.readText()?.parseJson<ChartCacheParams>()
}.getOrNull()
if (existingCacheParams != cacheParams) {
cacheDirectory.deleteRecursively()
cacheDirectory.deleteRecursivelyLogged()
cacheDirectory.mkdirs()
cacheParamsFile.writeText(cacheParams.stringifyJson())
}
Expand Down Expand Up @@ -212,17 +213,18 @@ object ChartRepository {

fun clear(project: Project) {
cacheMap.clear()
project.getCacheDir().resolve(CHARTS_CACHE_FOLDER_NAME).deleteRecursively()
project.getCacheDir().resolve(CHARTS_CACHE_FOLDER_NAME).deleteRecursivelyLogged()
}

/**
* Move the cache from the old cache directory to the new cache directory.
*/
fun moveTo(oldCacheDirectory: File, newCacheDirectory: File, clearOld: Boolean) {
Log.debug("Moving cache from $oldCacheDirectory to $newCacheDirectory")
val oldDirectory = oldCacheDirectory.resolve(CHARTS_CACHE_FOLDER_NAME)
if (oldDirectory.isDirectory.not()) return
oldDirectory.copyRecursively(newCacheDirectory.resolve(CHARTS_CACHE_FOLDER_NAME), overwrite = true)
if (clearOld) oldDirectory.deleteRecursively()
if (clearOld) oldDirectory.deleteRecursivelyLogged()
}

private const val CHARTS_CACHE_FOLDER_NAME = "charts"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package com.sdercolin.vlabeler.repository

import androidx.compose.runtime.Stable
import com.sdercolin.vlabeler.audio.conversion.WaveConverter
import com.sdercolin.vlabeler.env.Log
import com.sdercolin.vlabeler.model.AppConf
import com.sdercolin.vlabeler.model.Project
import com.sdercolin.vlabeler.util.deleteRecursivelyLogged
import com.sdercolin.vlabeler.util.findUnusedFile
import com.sdercolin.vlabeler.util.getCacheDir
import com.sdercolin.vlabeler.util.parseJson
Expand Down Expand Up @@ -60,17 +62,18 @@ object ConvertedAudioRepository {
* Clear cached sample information files.
*/
fun clear(project: Project) {
project.getCacheDir().resolve(WAVE_CACHE_FOLDER_NAME).deleteRecursively()
project.getCacheDir().resolve(WAVE_CACHE_FOLDER_NAME).deleteRecursivelyLogged()
}

/**
* Move the cache from the old cache directory to the new cache directory.
*/
fun moveTo(oldCacheDirectory: File, newCacheDirectory: File, clearOld: Boolean) {
Log.debug("Moving cache from $oldCacheDirectory to $newCacheDirectory")
val oldDirectory = oldCacheDirectory.resolve(WAVE_CACHE_FOLDER_NAME)
if (oldDirectory.isDirectory.not()) return
oldDirectory.copyRecursively(newCacheDirectory.resolve(WAVE_CACHE_FOLDER_NAME), overwrite = true)
if (clearOld) oldDirectory.deleteRecursively()
if (clearOld) oldDirectory.deleteRecursivelyLogged()
}

private const val WAVE_CACHE_FOLDER_NAME = "wav"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.sdercolin.vlabeler.env.Log
import com.sdercolin.vlabeler.model.AppConf
import com.sdercolin.vlabeler.model.Project
import com.sdercolin.vlabeler.model.SampleInfo
import com.sdercolin.vlabeler.util.deleteRecursivelyLogged
import com.sdercolin.vlabeler.util.findUnusedFile
import com.sdercolin.vlabeler.util.getCacheDir
import com.sdercolin.vlabeler.util.parseJson
Expand Down Expand Up @@ -99,17 +100,18 @@ object SampleInfoRepository {
fun clear(project: Project) {
infoMap.clear()
cacheMap.clear()
project.getCacheDir().resolve(SAMPLE_INFO_CACHE_FOLDER_NAME).deleteRecursively()
project.getCacheDir().resolve(SAMPLE_INFO_CACHE_FOLDER_NAME).deleteRecursivelyLogged()
}

/**
* Move the cache from the old cache directory to the new cache directory.
*/
fun moveTo(oldCacheDirectory: File, newCacheDirectory: File, clearOld: Boolean) {
Log.debug("Moving cache from $oldCacheDirectory to $newCacheDirectory")
val oldDirectory = oldCacheDirectory.resolve(SAMPLE_INFO_CACHE_FOLDER_NAME)
if (oldDirectory.isDirectory.not()) return
oldDirectory.copyRecursively(newCacheDirectory.resolve(SAMPLE_INFO_CACHE_FOLDER_NAME), overwrite = true)
if (clearOld) oldDirectory.deleteRecursively()
if (clearOld) oldDirectory.deleteRecursivelyLogged()
}

private const val SAMPLE_INFO_CACHE_FOLDER_NAME = "sample-info"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ class UpdateRepository {
onProgress(1f)
return@execute
} else {
Log.debug("Deleting outdated update file: ${file.absolutePath}")
file.delete()
}
}
Expand Down
5 changes: 3 additions & 2 deletions src/jvmMain/kotlin/com/sdercolin/vlabeler/ui/AppState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import com.sdercolin.vlabeler.ui.string.*
import com.sdercolin.vlabeler.util.AppDir
import com.sdercolin.vlabeler.util.ParamMap
import com.sdercolin.vlabeler.util.RecordDir
import com.sdercolin.vlabeler.util.deleteRecursivelyLogged
import com.sdercolin.vlabeler.util.getDefaultNewEntryName
import com.sdercolin.vlabeler.util.toFile
import com.sdercolin.vlabeler.util.toFrame
Expand Down Expand Up @@ -367,11 +368,11 @@ class AppState(
action.state.removeItem(action.item)
}
is CommonConfirmationDialogAction.ClearAppData -> {
AppDir.deleteRecursively()
AppDir.deleteRecursivelyLogged()
exit()
}
is CommonConfirmationDialogAction.ClearAppRecord -> {
RecordDir.deleteRecursively()
RecordDir.deleteRecursivelyLogged()
exit()
}
}
Expand Down
10 changes: 8 additions & 2 deletions src/jvmMain/kotlin/com/sdercolin/vlabeler/ui/ProjectStore.kt
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ class ProjectStoreImpl(
override fun getAutoSavedProjectFile(): File? = listAutoSavedProjectFiles().firstOrNull()

override fun discardAutoSavedProjects() {
listAutoSavedProjectFiles().forEach { it.delete() }
listAutoSavedProjectFiles().forEach { discardAutoSavedProjectFile(it) }
}

override suspend fun terminateAutoSaveProject() {
Expand All @@ -485,7 +485,13 @@ class ProjectStoreImpl(
}

private fun discardAutoSavedProject(project: Project) {
RecordDir.resolve("_" + project.projectFile.name).takeIf { it.exists() }?.delete()
val file = RecordDir.resolve("_" + project.projectFile.name).takeIf { it.exists() } ?: return
discardAutoSavedProjectFile(file)
}

private fun discardAutoSavedProjectFile(file: File) {
Log.debug("Discarding auto saved project: ${file.absolutePath}")
file.delete()
}

private var autoSaveJob: Job? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package com.sdercolin.vlabeler.ui.dialog.customization
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import com.sdercolin.vlabeler.ui.string.*
import com.sdercolin.vlabeler.env.Log
import com.sdercolin.vlabeler.ui.string.LocalizedJsonString
import com.sdercolin.vlabeler.util.Url
import java.awt.Desktop
import java.io.File
Expand All @@ -21,7 +22,11 @@ abstract class CustomizableItem(
disabled: Boolean,
) {

fun remove(): Boolean = rootFile.deleteRecursively()
fun remove(): Boolean = rootFile.deleteRecursively().also {
if (it) {
Log.debug("Removed CustomizableItem $rootFile")
}
}

fun revealInExplorer() {
val file = if (rootFile.isDirectory) rootFile else rootFile.parentFile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ class ChartStore {
) {
val targetFile = ChartRepository.getWaveformImageFile(sampleInfo, channelIndex, chunkIndex)
if (targetFile.exists()) {
Log.debug("Deleting outdated cache: ${targetFile.absolutePath}")
targetFile.delete()
}
}
Expand Down Expand Up @@ -294,6 +295,7 @@ class ChartStore {
) {
val targetFile = ChartRepository.getSpectrogramImageFile(sampleInfo, chunkIndex)
if (targetFile.exists()) {
Log.debug("Deleting outdated cache: ${targetFile.absolutePath}")
targetFile.delete()
}
}
Expand Down Expand Up @@ -394,6 +396,7 @@ class ChartStore {
) {
val targetFile = ChartRepository.getPowerGraphImageFile(sampleInfo, channelIndex, chunkIndex)
if (targetFile.exists()) {
Log.debug("Deleting outdated cache: ${targetFile.absolutePath}")
targetFile.delete()
}
}
Expand Down
12 changes: 12 additions & 0 deletions src/jvmMain/kotlin/com/sdercolin/vlabeler/util/File.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.sdercolin.vlabeler.util

import com.sdercolin.vlabeler.env.Log
import com.sdercolin.vlabeler.env.isFileSystemCaseSensitive
import java.io.File
import java.io.FilenameFilter
Expand Down Expand Up @@ -86,6 +87,17 @@ fun File.containsFileRecursively(file: File): Boolean {
return true
}

/**
* Execute [File.deleteRecursively] and log if success.
*/
fun File.deleteRecursivelyLogged() {
if (exists().not()) return
val result = deleteRecursively()
if (result) {
Log.debug("Deleted recursively: $absolutePath")
}
}

/**
* Remove the directory if it is empty. (.DS_Store is ignored)
*/
Expand Down

0 comments on commit 5efaff7

Please sign in to comment.