|
@ -10,6 +10,9 @@ use App\Facades\Install; |
|
|
use App\Facades\NginxVhost; |
|
|
use App\Facades\NginxVhost; |
|
|
use App\Facades\NginxVhostFactory; |
|
|
use App\Facades\NginxVhostFactory; |
|
|
use App\Facades\TerminalHelper; |
|
|
use App\Facades\TerminalHelper; |
|
|
|
|
|
use App\Facades\Menus\StylesFactory; |
|
|
|
|
|
|
|
|
|
|
|
use App\Helpers\NginxTemplateHelper; |
|
|
|
|
|
|
|
|
use App\BladeFile; |
|
|
use App\BladeFile; |
|
|
|
|
|
|
|
@ -55,43 +58,6 @@ class NginxVhostsCommand extends Command |
|
|
*/ |
|
|
*/ |
|
|
protected $description = 'Create and Manage Nginx Vhosts'; |
|
|
protected $description = 'Create and Manage Nginx Vhosts'; |
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* |
|
|
|
|
|
* @param string $prefix [description] |
|
|
|
|
|
* @return [type] [description] |
|
|
|
|
|
*/ |
|
|
|
|
|
private function getTemplates($prefix = '') |
|
|
|
|
|
{ |
|
|
|
|
|
// templates
|
|
|
|
|
|
$templates = []; |
|
|
|
|
|
|
|
|
|
|
|
// getting templates
|
|
|
|
|
|
$files = scandir(base_path().self::TEMPLATES_DIR); |
|
|
|
|
|
|
|
|
|
|
|
foreach($files as $file) { |
|
|
|
|
|
|
|
|
|
|
|
// create filepath
|
|
|
|
|
|
$filepath = base_path().self::TEMPLATES_DIR.'/'.$file; |
|
|
|
|
|
|
|
|
|
|
|
// getting info
|
|
|
|
|
|
$pathinfo = pathinfo($filepath); |
|
|
|
|
|
|
|
|
|
|
|
// if extension isset and php
|
|
|
|
|
|
if (isset($pathinfo['extension']) && $pathinfo['extension'] === 'php') { |
|
|
|
|
|
|
|
|
|
|
|
$name = str_replace('.blade.php', '', $file); |
|
|
|
|
|
|
|
|
|
|
|
$templates[] = [ |
|
|
|
|
|
'name' => $name, |
|
|
|
|
|
'file' => $file, |
|
|
|
|
|
'filepath' => $filepath |
|
|
|
|
|
]; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $templates; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* |
|
|
* |
|
|
* |
|
|
* |
|
@ -99,19 +65,18 @@ class NginxVhostsCommand extends Command |
|
|
*/ |
|
|
*/ |
|
|
private function selectTemplate() |
|
|
private function selectTemplate() |
|
|
{ |
|
|
{ |
|
|
// getting templates
|
|
|
|
|
|
$templates = $this->getTemplates(); |
|
|
|
|
|
|
|
|
|
|
|
// create blade
|
|
|
|
|
|
$bladeFile = new BladeFile(self::TEMPLATES_DIR); |
|
|
|
|
|
|
|
|
|
|
|
$menu = function(CliMenuBuilder $builder) use ($templates, $bladeFile) |
|
|
|
|
|
|
|
|
$menu = function(CliMenuBuilder $builder) |
|
|
{ |
|
|
{ |
|
|
|
|
|
// create blade
|
|
|
|
|
|
$bladeFile = new BladeFile(self::TEMPLATES_DIR); |
|
|
|
|
|
|
|
|
$builder |
|
|
$builder |
|
|
->setTitle('Nginx > Add') |
|
|
->setTitle('Nginx > Add') |
|
|
->setGoBackButtonText('Back'); |
|
|
->setGoBackButtonText('Back'); |
|
|
|
|
|
|
|
|
foreach($templates as $template) { |
|
|
|
|
|
|
|
|
$nginxTemplateHelper = new NginxTemplateHelper(); |
|
|
|
|
|
|
|
|
|
|
|
foreach($nginxTemplateHelper->find() as $template) { |
|
|
$submenuCallable = $this->createConfiguration($template, $bladeFile); |
|
|
$submenuCallable = $this->createConfiguration($template, $bladeFile); |
|
|
$builder |
|
|
$builder |
|
|
->addSubMenu($template['name'], $submenuCallable); |
|
|
->addSubMenu($template['name'], $submenuCallable); |
|
@ -250,21 +215,18 @@ class NginxVhostsCommand extends Command |
|
|
$submenuSelectTemplate = $this->selectTemplate(); |
|
|
$submenuSelectTemplate = $this->selectTemplate(); |
|
|
|
|
|
|
|
|
// create menu
|
|
|
// create menu
|
|
|
$mainmenu = $this->menu('Nginx') |
|
|
|
|
|
|
|
|
$builder = $this->menu('Nginx') |
|
|
|
|
|
|
|
|
// add Submenu for select templates
|
|
|
// add Submenu for select templates
|
|
|
->addLineBreak('-') |
|
|
->addLineBreak('-') |
|
|
->addSubMenu('Add', $submenuSelectTemplate); |
|
|
->addSubMenu('Add', $submenuSelectTemplate); |
|
|
|
|
|
|
|
|
$mainmenu->addLineBreak('-'); |
|
|
|
|
|
|
|
|
$builder->addLineBreak('-'); |
|
|
|
|
|
|
|
|
// apperance
|
|
|
// apperance
|
|
|
$mainmenu->setWidth($mainmenu->getTerminal()->getWidth()); |
|
|
|
|
|
$mainmenu->setBorderLeftWidth(4); |
|
|
|
|
|
$mainmenu->setBorderColour('magenta'); |
|
|
|
|
|
$mainmenu->setMargin(2); |
|
|
|
|
|
|
|
|
$builder = StylesFactory::setMenuStyles($builder); |
|
|
|
|
|
|
|
|
$mainmenu = $mainmenu->build(); |
|
|
|
|
|
|
|
|
$mainmenu = $builder->build(); |
|
|
|
|
|
|
|
|
// remove first item
|
|
|
// remove first item
|
|
|
$items = $mainmenu->getItems(); |
|
|
$items = $mainmenu->getItems(); |
|
|