Skip to content

Commit

Permalink
add pref_createInvalidBackups
Browse files Browse the repository at this point in the history
  • Loading branch information
hg42 committed Dec 12, 2024
1 parent adda469 commit 7cce62c
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 19 deletions.
23 changes: 15 additions & 8 deletions src/main/java/com/machiav3lli/backup/dbs/entity/Backup.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.machiav3lli.backup.PROP_NAME
import com.machiav3lli.backup.entity.StorageFile
import com.machiav3lli.backup.handler.LogsHandler.Companion.logException
import com.machiav3lli.backup.handler.regexPackageFolder
import com.machiav3lli.backup.preferences.pref_createInvalidBackups
import com.machiav3lli.backup.utils.LocalDateTimeSerializer
import com.machiav3lli.backup.utils.SystemUtils
import com.machiav3lli.backup.utils.getBackupRoot
Expand Down Expand Up @@ -272,16 +273,22 @@ data class Backup @OptIn(kotlinx.serialization.ExperimentalSerializationApi::cla

serialized = propertiesFile.readText()

if (serialized.isEmpty())
return createInvalidFrom(propertiesFile, why = "empty-props")

val backup = fromSerialized(serialized)
val backup = if (serialized.isEmpty()) {
if (pref_createInvalidBackups.value)
createInvalidFrom(propertiesFile, why = "empty-props")
else
null
} else {
fromSerialized(serialized)
}

//TODO bug: list serialization (jsonPretty, yaml) adds a space in front of each value
// found older multiline json and yaml without the bug, so it was introduced lately (by lib versions)
backup.permissions = backup.permissions.map { it.trim() } //TODO workaround
backup?.run {
backup.file = propertiesFile

backup.file = propertiesFile
//TODO bug: list serialization (jsonPretty, yaml) adds a space in front of each value
// found older multiline json and yaml without the bug, so it was introduced lately (by lib versions)
backup.permissions = backup.permissions.map { it.trim() } //TODO workaround
}

return backup

Expand Down
25 changes: 14 additions & 11 deletions src/main/java/com/machiav3lli/backup/handler/BackendController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import com.machiav3lli.backup.handler.LogsHandler.Companion.logException
import com.machiav3lli.backup.handler.ShellCommands.Companion.currentProfile
import com.machiav3lli.backup.handler.ShellHandler.Companion.runAsRoot
import com.machiav3lli.backup.preferences.pref_backupSuspendApps
import com.machiav3lli.backup.preferences.pref_createInvalidBackups
import com.machiav3lli.backup.preferences.pref_earlyEmptyBackups
import com.machiav3lli.backup.preferences.pref_lookForEmptyBackups
import com.machiav3lli.backup.preferences.traceBackupsScan
Expand Down Expand Up @@ -233,7 +234,7 @@ suspend fun scanBackups(
if (damagedOp != null)
renameDamagedToERROR(dir, "empty-backup")
else
onInvalidBackup(dir, file, null, "empty")
onInvalidBackup(dir, file, null, "empty-backup")
}

suspend fun handleProps(
Expand Down Expand Up @@ -582,7 +583,7 @@ fun Context.findBackups(

val backupRoot = getBackupRoot()

val count = AtomicInteger(0)
//val count = AtomicInteger(0)

when (1) {
1 -> {
Expand All @@ -595,7 +596,7 @@ fun Context.findBackups(
damagedOp = damagedOp,
forceTrace = forceTrace,
onValidBackup = { props ->
count.getAndIncrement()
//count.getAndIncrement()
Backup.createFrom(props)
?.let { backup ->
//traceDebug { "put ${backup.packageName}/${backup.backupDate}" }
Expand All @@ -606,15 +607,17 @@ fun Context.findBackups(
}
},
onInvalidBackup = { dir: StorageFile, props: StorageFile?, packageName: String?, why: String? ->
count.getAndIncrement()
Backup.createInvalidFrom(dir, props, packageName, why)
?.let { backup ->
//traceDebug { "put ${backup.packageName}/${backup.backupDate}" }
synchronized(backupsMap) {
backupsMap.getOrPut(backup.packageName) { mutableListOf() }
.add(backup)
//count.getAndIncrement()
if (pref_createInvalidBackups.value) {
Backup.createInvalidFrom(dir, props, packageName, why)
?.let { backup ->
//traceDebug { "put ${backup.packageName}/${backup.backupDate}" }
synchronized(backupsMap) {
backupsMap.getOrPut(backup.packageName) { mutableListOf() }
.add(backup)
}
}
}
}
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,12 @@ val pref_busyHitTime = IntPref(
defaultValue = 2000
)

val pref_createInvalidBackups = BooleanPref(
key = "dev-alt.createInvalidBackups",
summary = "create dummy 'INVALID' backups when detecting errors (for now, do not try to delete them!!!)",
defaultValue = false
)

val pref_lookForEmptyBackups = BooleanPref(
key = "dev-alt.lookForEmptyBackups",
summary = "scan for empty backups (slower refresh, especially remote)",
Expand Down

0 comments on commit 7cce62c

Please sign in to comment.