From eb921e4d715d8177b01399d64956b16d782fddde Mon Sep 17 00:00:00 2001 From: hg42 Date: Sun, 25 Aug 2024 02:31:54 +0200 Subject: [PATCH] harden TextPlugin functions (save, delete), cleanups --- .../backup/plugins/InternalRegexPlugin.kt | 2 +- .../plugins/InternalShellScriptPlugin.kt | 2 +- .../com/machiav3lli/backup/plugins/Plugin.kt | 2 +- .../machiav3lli/backup/plugins/TextPlugin.kt | 31 ++++++++++++++----- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/machiav3lli/backup/plugins/InternalRegexPlugin.kt b/src/main/java/com/machiav3lli/backup/plugins/InternalRegexPlugin.kt index bf0ecf2752..51203e25d0 100644 --- a/src/main/java/com/machiav3lli/backup/plugins/InternalRegexPlugin.kt +++ b/src/main/java/com/machiav3lli/backup/plugins/InternalRegexPlugin.kt @@ -6,7 +6,7 @@ import java.io.File class InternalRegexPlugin(file: File) : TextPlugin(file) { init { - tracePlugin { ("${this.javaClass.simpleName} $name <- ${file.name}") } //TODO hg42 + tracePlugin { "${this.javaClass.simpleName} $name <- ${file.name}" } //TODO hg42 } fun getExtendedLineRegex(replacements: Map = mapOf()) = Regex( diff --git a/src/main/java/com/machiav3lli/backup/plugins/InternalShellScriptPlugin.kt b/src/main/java/com/machiav3lli/backup/plugins/InternalShellScriptPlugin.kt index 6d9ba5499d..0ea0924d25 100644 --- a/src/main/java/com/machiav3lli/backup/plugins/InternalShellScriptPlugin.kt +++ b/src/main/java/com/machiav3lli/backup/plugins/InternalShellScriptPlugin.kt @@ -6,7 +6,7 @@ import java.io.File class InternalShellScriptPlugin(file: File) : TextPlugin(file) { init { - tracePlugin { ("${this::class.simpleName} $name <- ${file.name}") } //TODO hg42 + tracePlugin { "${this::class.simpleName} $name <- ${file.name}" } //TODO hg42 } companion object : PluginCompanion { diff --git a/src/main/java/com/machiav3lli/backup/plugins/Plugin.kt b/src/main/java/com/machiav3lli/backup/plugins/Plugin.kt index 3a7211d216..847449c821 100644 --- a/src/main/java/com/machiav3lli/backup/plugins/Plugin.kt +++ b/src/main/java/com/machiav3lli/backup/plugins/Plugin.kt @@ -83,7 +83,7 @@ abstract class Plugin(val name: String, var file: File) { pluginCompanion: PluginCompanion, extensions: List, ): Boolean { - tracePlugin { ("register ${pluginCompanion.name()} type: $type, extensions: $extensions") } + tracePlugin { "register ${pluginCompanion.name()} type: $type, extensions: $extensions" } pluginTypes[type] = pluginCompanion pluginExtension[type] = extensions.first() extensions.forEach { diff --git a/src/main/java/com/machiav3lli/backup/plugins/TextPlugin.kt b/src/main/java/com/machiav3lli/backup/plugins/TextPlugin.kt index 1e33398f90..7daef14804 100644 --- a/src/main/java/com/machiav3lli/backup/plugins/TextPlugin.kt +++ b/src/main/java/com/machiav3lli/backup/plugins/TextPlugin.kt @@ -28,7 +28,14 @@ fun TextEditor( placeholder: String = "", onChanged: (String) -> Unit = {}, ) { - var input by remember { mutableStateOf(TextFieldValue(text = text, selection = TextRange(text.length))) } + var input by remember { + mutableStateOf( + TextFieldValue( + text = text, + selection = TextRange(text.length) + ) + ) + } val textFieldFocusRequester = remember { FocusRequester() } LaunchedEffect(Unit) { @@ -60,22 +67,30 @@ open class TextPlugin(file: File) : Plugin(name = file.nameWithoutExtension, fil init { try { text = file.readText() - tracePlugin { ("${this.javaClass.simpleName} $name loaded <- ${file.name}") } + tracePlugin { "${this.javaClass.simpleName} $name loaded <- ${file.name}" } } catch (e: Throwable) { text = "" - tracePlugin { ("${this.javaClass.simpleName} $name created -> ${file.name}") } + tracePlugin { "${this.javaClass.simpleName} $name created -> ${file.name}" } } } override fun save() { - file.parentFile?.mkdirs() - file.writeText(text) - tracePlugin { ("${this.javaClass.simpleName} $name saved -> ${file.name}") } + try { + file.parentFile?.mkdirs() + file.writeText(text) + tracePlugin { "${this.javaClass.simpleName} $name saved -> ${file.name}" } + } catch (e: Throwable) { + tracePlugin { "${this.javaClass.simpleName} $name failed to save -> ${file.name}" } + } } override fun delete() { - file.delete() - tracePlugin { ("${this.javaClass.simpleName} $name deleted -> ${file.name}") } + try { + file.delete() + tracePlugin { "${this.javaClass.simpleName} $name deleted -> ${file.name}" } + } catch (e: Throwable) { + tracePlugin { "${this.javaClass.simpleName} $name failed to delete -> ${file.name}" } + } } @Composable