diff options
Diffstat (limited to 'plugins/plugin_lua/src/builder.rs')
-rw-r--r-- | plugins/plugin_lua/src/builder.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/plugins/plugin_lua/src/builder.rs b/plugins/plugin_lua/src/builder.rs index 86f160dd..3e7f8d87 100644 --- a/plugins/plugin_lua/src/builder.rs +++ b/plugins/plugin_lua/src/builder.rs @@ -37,10 +37,18 @@ impl<PD: PluginDirectory> PluginBuilder<PD> for LuaPluginBuilder { ) -> Result<(), tedge_api::error::PluginError> { config .clone() - .try_into() - .map(|_: Config| ()) + .try_into::<Config>() .map_err(crate::error::Error::ConfigParseFailed) - .map_err(PluginError::from) + .and_then(|config| { + if !config.script.exists() { + Err(crate::error::Error::ScriptDoesNotExist( + config.script.clone(), + )) + } else { + Ok(()) + } + }) + .map_err(tedge_api::error::PluginError::from) } async fn instantiate( @@ -49,11 +57,11 @@ impl<PD: PluginDirectory> PluginBuilder<PD> for LuaPluginBuilder { _cancellation_token: CancellationToken, _plugin_dir: &PD, ) -> Result<BuiltPlugin, PluginError> { - let _config = config + let config = config .try_into::<Config>() .map_err(crate::error::Error::ConfigParseFailed) .map_err(PluginError::from)?; - Ok(LuaPlugin::new().finish()) + Ok(LuaPlugin::new(&config).finish()) } } |