feat: empty manager check
This commit is contained in:
1 parent
37ef7c3ff9
commit
f47d2d3d30
2 files changed
+23
-4
No files matched your search
+5
-1
@@ -7,10 +7,14 @@ async fn main() -> Result<()> {
|
|||||||
let args = Cli::parse();
|
let args = Cli::parse();
|
||||||
set_up_logging();
|
set_up_logging();
|
||||||
|
|
||||||
let _ = PluginManager::init(&PluginConfig {
|
let plugin_state = PluginManager::init(&PluginConfig {
|
||||||
available: true,
|
available: true,
|
||||||
required: vec![],
|
required: vec![],
|
||||||
});
|
});
|
||||||
|
if !plugin_state {
|
||||||
|
log::error!("🚫 Plugin system initialization failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
match args.action {
|
match args.action {
|
||||||
Commands::Translate(opts) => {
|
Commands::Translate(opts) => {
|
||||||
|
|||||||
+18
-3
@@ -38,9 +38,6 @@ pub struct PluginManager;
|
|||||||
|
|
||||||
impl PluginManager {
|
impl PluginManager {
|
||||||
pub fn init(config: &PluginConfig) -> bool {
|
pub fn init(config: &PluginConfig) -> bool {
|
||||||
if !config.available {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let lua = if let Ok(v) = LUA.lock() {
|
let lua = if let Ok(v) = LUA.lock() {
|
||||||
v
|
v
|
||||||
@@ -48,6 +45,12 @@ impl PluginManager {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !config.available {
|
||||||
|
// // if plugin system is available, just set manager to nil.
|
||||||
|
// lua.globals().set("manager", mlua::Value::Nil).unwrap();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
let manager = lua.create_table().unwrap();
|
let manager = lua.create_table().unwrap();
|
||||||
let plugin_dir = Self::init_plugin_dir();
|
let plugin_dir = Self::init_plugin_dir();
|
||||||
|
|
||||||
@@ -136,6 +139,9 @@ impl PluginManager {
|
|||||||
|
|
||||||
let lua = LUA.lock().unwrap();
|
let lua = LUA.lock().unwrap();
|
||||||
|
|
||||||
|
if !lua.globals().contains_key("manager")? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let manager = lua.globals().get::<_, Table>("manager")?;
|
let manager = lua.globals().get::<_, Table>("manager")?;
|
||||||
|
|
||||||
let args = lua.create_table()?;
|
let args = lua.create_table()?;
|
||||||
@@ -157,6 +163,9 @@ impl PluginManager {
|
|||||||
pub fn on_build_finish(crate_config: &CrateConfig, platform: &str) -> anyhow::Result<()> {
|
pub fn on_build_finish(crate_config: &CrateConfig, platform: &str) -> anyhow::Result<()> {
|
||||||
let lua = LUA.lock().unwrap();
|
let lua = LUA.lock().unwrap();
|
||||||
|
|
||||||
|
if !lua.globals().contains_key("manager")? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let manager = lua.globals().get::<_, Table>("manager")?;
|
let manager = lua.globals().get::<_, Table>("manager")?;
|
||||||
|
|
||||||
let args = lua.create_table()?;
|
let args = lua.create_table()?;
|
||||||
@@ -178,6 +187,9 @@ impl PluginManager {
|
|||||||
pub fn on_serve_start(crate_config: &CrateConfig) -> anyhow::Result<()> {
|
pub fn on_serve_start(crate_config: &CrateConfig) -> anyhow::Result<()> {
|
||||||
let lua = LUA.lock().unwrap();
|
let lua = LUA.lock().unwrap();
|
||||||
|
|
||||||
|
if !lua.globals().contains_key("manager")? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let manager = lua.globals().get::<_, Table>("manager")?;
|
let manager = lua.globals().get::<_, Table>("manager")?;
|
||||||
|
|
||||||
let args = lua.create_table()?;
|
let args = lua.create_table()?;
|
||||||
@@ -219,6 +231,9 @@ impl PluginManager {
|
|||||||
pub fn on_serve_shutdown(crate_config: &CrateConfig) -> anyhow::Result<()> {
|
pub fn on_serve_shutdown(crate_config: &CrateConfig) -> anyhow::Result<()> {
|
||||||
let lua = LUA.lock().unwrap();
|
let lua = LUA.lock().unwrap();
|
||||||
|
|
||||||
|
if !lua.globals().contains_key("manager")? {
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
let manager = lua.globals().get::<_, Table>("manager")?;
|
let manager = lua.globals().get::<_, Table>("manager")?;
|
||||||
|
|
||||||
let args = lua.create_table()?;
|
let args = lua.create_table()?;
|
||||||
|
|||||||
Reference in new issue
Block a user