|
|
- <?php
-
- namespace App\Commands;
-
- use Illuminate\Console\Scheduling\Schedule;
- use LaravelZero\Framework\Commands\Command;
- use Illuminate\Support\Facades\File;
-
- use App\Facades\Install;
- use App\Facades\NginxVhost;
- use App\Facades\NginxVhostFactory;
- use App\Facades\TerminalHelper;
- use App\Facades\Menus\StylesFactory;
-
- use App\Helpers\NginxTemplateHelper;
-
- use App\Menus\Nginx\NginxVhostGoBackAction;
- use App\Menus\Nginx\TemplateMenuFactory;
-
- use PhpSchool\CliMenu\Builder\CliMenuBuilder;
- use PhpSchool\CliMenu\CliMenu;
- use PhpSchool\CliMenu\MenuItem\CheckboxItem;
- use PhpSchool\CliMenu\Style\SelectableStyle;
- use PhpSchool\CliMenu\MenuItem\MenuMenuItem;
-
- /**
- * Add and Edit Configurations of Vhosts from Nginx
- *
- * Using php-school/cli-menu
- *
- * @author Björn Hase, Tentakelfabrik
- * @license http://opensource.org/licenses/MIT The MIT License
- * @link https://gitea.tentakelfabrik.de/Tentakelfabrik/mcp
- *
- */
- class NginxVhostsCommand extends Command
- {
- // index for vhosts
- // @TODO move this in a global class
- const VHOST_INDEX = 0;
-
- /**
- * The signature of the command.
- *
- * @var string
- */
- protected $signature = 'nginx:vhosts';
-
- /**
- * The description of the command.
- *
- * @var string
- */
- protected $description = 'Create and Manage Nginx Vhosts';
-
- /**
- * let it rain
- *
- *
- */
- public function handle()
- {
- $nginxTemplateHelper = new TemplateMenuFactory();
-
- // create menu
- $builder = $this->menu('Nginx')
-
- // add Submenu for select templates
- ->addLineBreak('-')
- ->addSubMenu('Add', $nginxTemplateHelper->addSelectTemplateItem());
-
- $builder->addLineBreak('-');
-
- // apperance
- $builder = StylesFactory::setMenuStyles($builder);
-
- $mainmenu = $builder->build();
-
- // remove first item
- $items = $mainmenu->getItems();
- unset($items[0]);
- $mainmenu->setItems($items);
-
- // adding current vhosts
- $mainmenu = NginxVhostFactory::addVhosts($mainmenu, NginxVhost::find(), self::VHOST_INDEX);
- $mainmenu->open();
- }
- }
|