Trap exception/check for module existing on disk #1211 (#1271)

* Trap exception/check for module existing on disk #1211

* Style fixes
This commit is contained in:
Nabeel S
2021-08-06 13:30:24 -04:00
committed by GitHub
parent 4a04d73d08
commit 95e1df619e
3 changed files with 57 additions and 7 deletions

View File

@@ -88,13 +88,55 @@ class ModuleService extends Service
}
/**
* Get All modules from Database
* Get all of the modules from database but make sure they also exist on disk
*
* @return object
*/
public function getAllModules(): object
public function getAllModules(): array
{
return Module::all();
$modules = [];
$moduleList = Module::all();
/** @var Module $module */
foreach ($moduleList as $module) {
/** @var \Nwidart\Modules\Module $moduleInstance */
$moduleInstance = \Nwidart\Modules\Facades\Module::find($module->name);
if (empty($moduleInstance)) {
continue;
}
if (file_exists($moduleInstance->getPath())) {
$modules[] = $module;
}
}
return $modules;
}
/**
* Determine if a module is active - also checks that the module exists properly
*
* @param string $name
*
* @return bool
*/
public function moduleActive(string $name): bool
{
$module = Module::where('name', $name);
if (!$module->exists()) {
return false;
}
$moduleInstance = \Nwidart\Modules\Facades\Module::find($module->name);
if (empty($moduleInstance)) {
return false;
}
if (!file_exists($moduleInstance->getPath())) {
return false;
}
return true;
}
/**
@@ -104,7 +146,7 @@ class ModuleService extends Service
*
* @return object
*/
public function getModule($id): object
public function getModule($id): Module
{
return Module::find($id);
}
@@ -164,6 +206,7 @@ class ModuleService extends Service
0777,
true
);
$temp_ext_folder = storage_path('app/tmp/modules/'.$new_dir);
$temp = storage_path('app/tmp/modules/'.$new_dir);
@@ -219,7 +262,6 @@ class ModuleService extends Service
}
File::moveDirectory($temp, $toCopy);
File::deleteDirectory($temp_ext_folder);
try {