mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 17:59:46 +02:00
GP-3814 - Version Tracking - Removed dependency on VTController from VT scripts
This commit is contained in:
parent
d7d6b44e29
commit
e7bc5efb93
68 changed files with 740 additions and 689 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue