GP-3814 - Version Tracking - Removed dependency on VTController from VT scripts

This commit is contained in:
dragonmacher 2023-09-11 18:08:11 -04:00
parent d7d6b44e29
commit e7bc5efb93
68 changed files with 740 additions and 689 deletions

View file

@ -17,15 +17,14 @@
// data and and then save the session.
//@category Examples.Version Tracking
import java.util.List;
import ghidra.app.script.GhidraScript;
import ghidra.feature.vt.api.db.VTSessionDB;
import ghidra.feature.vt.api.main.VTSession;
import ghidra.feature.vt.api.util.VTOptions;
import ghidra.feature.vt.gui.actions.AutoVersionTrackingTask;
import ghidra.feature.vt.gui.plugin.*;
import ghidra.feature.vt.gui.plugin.VTController;
import ghidra.framework.model.DomainFolder;
import ghidra.framework.plugintool.Plugin;
import ghidra.framework.options.ToolOptions;
import ghidra.framework.plugintool.PluginTool;
import ghidra.program.model.listing.Program;
import ghidra.util.task.TaskLauncher;
@ -77,31 +76,19 @@ public class AutoVersionTrackingScript extends GhidraScript {
folder.createFile(name, session, monitor);
PluginTool tool = state.getTool();
VTPlugin vtPlugin = getPlugin(tool, VTPlugin.class);
if (vtPlugin == null) {
tool.addPlugin(VTPlugin.class.getName());
vtPlugin = getPlugin(tool, VTPlugin.class);
}
VTController controller = new VTControllerImpl(vtPlugin);
//String description = "AutoVTScript";
AutoVersionTrackingTask autoVtTask =
new AutoVersionTrackingTask(controller, session, 1.0, 10.0);
new AutoVersionTrackingTask(session, getOptions(), 1.0, 10.0);
TaskLauncher.launch(autoVtTask);
}
public static <T extends Plugin> T getPlugin(PluginTool tool, Class<T> c) {
List<Plugin> list = tool.getManagedPlugins();
for (Plugin p : list) {
if (p.getClass() == c) {
return c.cast(p);
}
private ToolOptions getOptions() {
ToolOptions vtOptions = new VTOptions("Dummy");
PluginTool tool = state.getTool();
if (tool != null) {
vtOptions = tool.getOptions(VTController.VERSION_TRACKING_OPTIONS_NAME);
}
return null;
return vtOptions;
}
}