refactor: make input plugin api similar to pass plugins
This commit is contained in:
+5
-11
@@ -1,26 +1,20 @@
|
||||
package jadx.plugins.script
|
||||
|
||||
import jadx.api.plugins.JadxPlugin
|
||||
import jadx.api.plugins.JadxPluginContext
|
||||
import jadx.api.plugins.JadxPluginInfo
|
||||
import jadx.api.plugins.options.JadxPluginOptions
|
||||
import jadx.api.plugins.options.OptionDescription
|
||||
import jadx.plugins.script.passes.JadxScriptAfterLoadPass
|
||||
import jadx.plugins.script.runner.ScriptEval
|
||||
import jadx.plugins.script.runtime.data.JadxScriptAllOptions
|
||||
|
||||
class JadxScriptPlugin : JadxPluginOptions {
|
||||
var scriptOptions: JadxScriptAllOptions = JadxScriptAllOptions(emptyMap())
|
||||
class JadxScriptPlugin : JadxPlugin {
|
||||
private val scriptOptions = JadxScriptAllOptions()
|
||||
|
||||
override fun getPluginInfo() = JadxPluginInfo("jadx-script", "Jadx Script", "Scripting support for jadx")
|
||||
|
||||
override fun setOptions(options: Map<String, String>) {
|
||||
scriptOptions = JadxScriptAllOptions(options)
|
||||
}
|
||||
|
||||
override fun init(init: JadxPluginContext) {
|
||||
init.registerOptions(scriptOptions)
|
||||
val scriptStates = ScriptEval().process(init, scriptOptions) ?: return
|
||||
init.passContext.addPass(JadxScriptAfterLoadPass(scriptStates))
|
||||
init.addPass(JadxScriptAfterLoadPass(scriptStates))
|
||||
}
|
||||
|
||||
override fun getOptionsDescriptions(): List<OptionDescription> = scriptOptions.descriptions
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user