Skip to content

Commit 0f9d38f

Browse files
committed
[SVD] Use type-safe activity configuration
1 parent 5b9d5d2 commit 0f9d38f

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

plugins/svd/src/lib.rs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,10 @@ use crate::settings::LoadSettings;
66
use binaryninja::binary_view::{BinaryView, BinaryViewBase, BinaryViewExt};
77
use binaryninja::command::Command;
88
use binaryninja::logger::Logger;
9+
use binaryninja::workflow::activity::{Config, Eligibility};
910
use binaryninja::workflow::{Activity, AnalysisContext, Workflow};
1011
use log::LevelFilter;
1112

12-
pub const LOADER_ACTIVITY_NAME: &str = "analysis.svd.loader";
13-
const LOADER_ACTIVITY_CONFIG: &str = r#"{
14-
"name": "analysis.svd.loader",
15-
"title" : "SVD Loader",
16-
"description": "This analysis step applies SVD info to the view...",
17-
"eligibility": {
18-
"auto": {},
19-
"runOnce": true
20-
}
21-
}"#;
22-
2313
struct LoadSVDFile;
2414

2515
impl Command for LoadSVDFile {
@@ -113,12 +103,17 @@ fn plugin_init() {
113103
};
114104

115105
// Register new workflow activity to load svd information.
116-
let old_module_meta_workflow = Workflow::instance("core.module.metaAnalysis");
117-
let module_meta_workflow = old_module_meta_workflow.clone_to("core.module.metaAnalysis");
118-
let loader_activity = Activity::new_with_action(LOADER_ACTIVITY_CONFIG, loader_activity);
106+
let module_meta_workflow = Workflow::cloned("core.module.metaAnalysis");
107+
let loader_config = Config::action(
108+
"analysis.svd.loader",
109+
"SVD Loader",
110+
"This analysis step applies SVD info to the view...",
111+
)
112+
.eligibility(Eligibility::auto().run_once(true));
113+
let loader_activity = Activity::new_with_action(&loader_config, loader_activity);
119114
module_meta_workflow
120115
.register_activity(&loader_activity)
121116
.unwrap();
122-
module_meta_workflow.insert("core.module.loadDebugInfo", [LOADER_ACTIVITY_NAME]);
117+
module_meta_workflow.insert("core.module.loadDebugInfo", [&loader_config.name]);
123118
module_meta_workflow.register().unwrap();
124119
}

0 commit comments

Comments
 (0)