bootstrap, .env.ezample to add update add
This commit is contained in:
		| @@ -26,59 +26,78 @@ class KernelController extends ConsoleController | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (file_exists(ROOT_DIR . $this->argv['path'])) { |         if (file_exists(ROOT_DIR . $this->argv['path'])) { | ||||||
|  |             $tmpKernelDirFull = RESOURCES_DIR . '/tmp/ad/app/kernel'; | ||||||
|             $tmpKernelDirFull = RESOURCES_DIR . '/tmp/ad/kernel/'; |             $this->files->copy_folder(KERNEL_DIR, $tmpKernelDirFull); | ||||||
|  |             $this->out->r("Ядро скопировано во временную папку", 'green'); | ||||||
|             $fileHelper = new Files(); |  | ||||||
|             $fileHelper->copy_folder(KERNEL_DIR, $tmpKernelDirFull); |  | ||||||
|  |  | ||||||
|             if (!is_dir(RESOURCES_DIR . '/tmp/kernel')) { |  | ||||||
|                 mkdir(RESOURCES_DIR . '/tmp/kernel'); |  | ||||||
|             } |  | ||||||
|             $fileHelper->pack($tmpKernelDirFull, RESOURCES_DIR . '/tmp/kernel/kernel.igk'); |  | ||||||
|  |  | ||||||
|             $fileHelper->recursiveRemoveDir($tmpKernelDirFull); |  | ||||||
|             $this->out->r("Ядро заархивировано", 'green'); |  | ||||||
|         } else { |         } else { | ||||||
|             $this->out->r("Ядро не найдено", 'red'); |             $this->out->r("Ядро не найдено", 'red'); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         if (isset($this->argv['bootstrap'])) { | ||||||
|  |             if (file_exists(ROOT_DIR . '/bootstrap')) { | ||||||
|  |                 $tmpBootstrapDirFull = RESOURCES_DIR . '/tmp/ad/app/bootstrap'; | ||||||
|  |                 $this->files->copy_folder(ROOT_DIR . '/bootstrap', $tmpBootstrapDirFull); | ||||||
|  |                 $this->out->r("/bootstrap скопирован во временную папку", 'green'); | ||||||
|  |             } else { | ||||||
|  |                 $this->out->r("/bootstrap не найден", 'red'); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (isset($this->argv['.env'])) { | ||||||
|  |             if (file_exists(ROOT_DIR . '/.env.example')) { | ||||||
|  |                 $tmpEnvFull = RESOURCES_DIR . '/tmp/ad/app/env.example'; | ||||||
|  |                copy(ROOT_DIR . '/.env.example', $tmpEnvFull); | ||||||
|  |                 $this->out->r("/.env.example скопирован во временную папку", 'green'); | ||||||
|  |             } else { | ||||||
|  |                 $this->out->r("/.env.example не найден", 'red'); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!is_dir(RESOURCES_DIR . '/tmp/app')) { | ||||||
|  |             mkdir(RESOURCES_DIR . '/tmp/app'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         $this->files->pack(RESOURCES_DIR . '/tmp/ad/app/', RESOURCES_DIR . '/tmp/app/app.iga'); | ||||||
|  |         $this->files->recursiveRemoveDir(RESOURCES_DIR . '/tmp/ad/app/'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * @throws \Exception |      * @throws \Exception | ||||||
|      */ |      */ | ||||||
|     public function actionUpdateKernel() |     public function actionUpdateKernel(): void | ||||||
|     { |     { | ||||||
|         if (!isset($this->argv['path'])) { |         if (!isset($this->argv['path'])) { | ||||||
|             throw new \Exception('Missing kernel path "--path" specified'); |             throw new \Exception('Missing kernel path "--path" specified'); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         $path = $this->argv['path']; |         $zip = new ZipArchive; | ||||||
|  |         if (file_exists(ROOT_DIR . $this->argv['path'])) { | ||||||
|         if (file_exists(ROOT_DIR . $path)) { |             $tmpAppDir = md5(time()); | ||||||
|             $zip = new ZipArchive; |             $res = $zip->open(ROOT_DIR . $this->argv['path']); | ||||||
|             $tmpKernelDir = md5(time()); |  | ||||||
|             $res = $zip->open(ROOT_DIR . $path); |  | ||||||
|             if ($res === TRUE) { |             if ($res === TRUE) { | ||||||
|                 $tmpKernelDirFull = RESOURCES_DIR . '/tmp/kernel/' . $tmpKernelDir . "/"; |                 $tmpAppDirFull = RESOURCES_DIR . '/tmp/app/' . $tmpAppDir . "/"; | ||||||
|                 $zip->extractTo($tmpKernelDirFull); |                 $zip->extractTo($tmpAppDirFull); | ||||||
|                 $zip->close(); |                 $zip->close(); | ||||||
|                 $this->files->recursiveRemoveKernelDir(); |                 $this->files->recursiveRemoveKernelDir(); | ||||||
|                 $this->files->copy_folder($tmpKernelDirFull , ROOT_DIR . "/kernel"); |                 $this->files->copy_folder($tmpAppDirFull . 'kernel' , ROOT_DIR . "/kernel"); | ||||||
|                 $this->files->recursiveRemoveDir($tmpKernelDirFull); |  | ||||||
|                 $this->out->r('Ядро обновлено.', 'green'); |                 if (isset($this->argv['bootstrap'])) { | ||||||
|  |                     $this->files->recursiveRemoveDir(ROOT_DIR . '/bootstrap'); | ||||||
|  |                     $this->files->copy_folder($tmpAppDirFull . 'bootstrap' , ROOT_DIR . '/bootstrap'); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 if (isset($this->argv['.env'])) { | ||||||
|  |                     copy($tmpAppDirFull . 'env.example', ROOT_DIR . '/.env.example'); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 $this->files->recursiveRemoveDir($tmpAppDirFull); | ||||||
|  |                 $this->out->r('Приложение обновлено.', 'green'); | ||||||
|             } else { |             } else { | ||||||
|                 $this->out->r('unable to open zip archive', 'red'); |                 $this->out->r('unable to open zip archive', 'red'); | ||||||
|                 return false; |  | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|             $this->out->r("Модуль не найден", 'red'); |             $this->out->r("archive not found", 'red'); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function test() |  | ||||||
|     { |  | ||||||
|  |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } | } | ||||||
| @@ -47,14 +47,15 @@ class Files | |||||||
|     { |     { | ||||||
|         $includes = new FilesystemIterator(KERNEL_DIR); |         $includes = new FilesystemIterator(KERNEL_DIR); | ||||||
|         foreach ($includes as $include) { |         foreach ($includes as $include) { | ||||||
|             if(is_dir($include) && !is_link($include) && $include->getFilename() !== 'app_modules') { |             if ($include->getFilename() === 'app_modules') continue; | ||||||
|  |  | ||||||
|  |             if(is_dir($include) && !is_link($include)) { | ||||||
|                 $this->recursiveRemoveDir($include); |                 $this->recursiveRemoveDir($include); | ||||||
|             } |             } | ||||||
|             else { |             else { | ||||||
|                 unlink($include); |                 unlink($include); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         rmdir(KERNEL_DIR); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function pack(string $source, string $destination/*, bool $include_source = true*/): void |     public function pack(string $source, string $destination/*, bool $include_source = true*/): void | ||||||
|   | |||||||
| @@ -49,6 +49,6 @@ class SecureRestController extends RestController | |||||||
|         } |         } | ||||||
|          |          | ||||||
|         $this->renderApi($res); |         $this->renderApi($res); | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |      | ||||||
| } | } | ||||||
		Reference in New Issue
	
	Block a user