68 lines
2.5 KiB
PHP
68 lines
2.5 KiB
PHP
![]() |
<?php
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | CatchAdmin [Just Like ~ ]
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Author: JaguarJack [ njphper@gmail.com ]
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
namespace catcher\command\install;
|
|||
|
|
|||
|
|
|||
|
use catcher\library\InstallLocalModule;
|
|||
|
use think\console\Command;
|
|||
|
use think\console\Input;
|
|||
|
use think\console\input\Argument;
|
|||
|
use think\console\input\Option;
|
|||
|
use think\console\Output;
|
|||
|
|
|||
|
class InstallLocalModuleCommand extends Command
|
|||
|
{
|
|||
|
protected function configure()
|
|||
|
{
|
|||
|
$this->setName('local:install')
|
|||
|
->addArgument('module', Argument::REQUIRED, 'module name')
|
|||
|
->setDescription('install catch local module');
|
|||
|
}
|
|||
|
|
|||
|
protected function execute(Input $input, Output $output)
|
|||
|
{
|
|||
|
$installedModule = $input->getArgument('module');
|
|||
|
|
|||
|
$install = new InstallLocalModule($installedModule);
|
|||
|
|
|||
|
if (!$install->localModuleExist()) {
|
|||
|
while (true) {
|
|||
|
$modules = $install->getLocalModulesInfo(false);
|
|||
|
if (!count($modules)) {
|
|||
|
$output->error('Input module not found and All local modules had been enabled');exit;
|
|||
|
}
|
|||
|
$choose = '';
|
|||
|
$i = 1;
|
|||
|
foreach ($modules as $k => $module) {
|
|||
|
$choose .= ($i++) . ':' . ($module['name']) . ($module['enable'] ? '(开启)' : '(未开启)') . PHP_EOL;
|
|||
|
}
|
|||
|
$answer = $output->ask($input, $choose);
|
|||
|
if (isset($modules[$answer-1])) {
|
|||
|
$installedModule = $modules[$answer - 1]['name'];
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
$install = new InstallLocalModule($installedModule);
|
|||
|
|
|||
|
if (!$install->isModuleEnabled()) {
|
|||
|
$output->error($installedModule . ' has been enabled!');
|
|||
|
exit;
|
|||
|
}
|
|||
|
|
|||
|
if (!$install->done()) {
|
|||
|
$output->error(sprintf('module [%s] has been installed, You can use [php think enable:module $module] to start it.', $installedModule));
|
|||
|
}
|
|||
|
|
|||
|
$output->info(sprintf('module [%s] installed successfully', $installedModule));
|
|||
|
}
|
|||
|
}
|