* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Mage\Command\BuiltIn; use Mage\Command\AbstractCommand; use Mage\Console; use Exception; /** * Adds elements to the Configuration. * Currently elements allowed to add: * - environments * * @author Andrés Montañez */ class ListCommand extends AbstractCommand { public function __construct() { $this->setName('List command') ->setHelpMessage('List available configurations. For now, only environments listing available') ->setSyntaxMessage('mage list [environments]') ->addUsageExample( 'mage list environments', 'List currently configured environments' ); } /** * Command for Listing Configuration Elements * @see \Mage\Command\AbstractCommand::run() * @throws Exception */ public function run() { $exitCode = 221; $subCommand = $this->getConfig()->getArgument(1); try { switch ($subCommand) { case 'environments': $exitCode = $this->listEnvironments(); break; default: throw new Exception('The Type of Elements to List is needed.'); break; } } catch (Exception $e) { Console::output('' . $e->getMessage() . '', 1, 2); } return $exitCode; } /** * Lists the Environments */ protected function listEnvironments() { $exitCode = 220; $environments = array(); $content = scandir(getcwd() . '/.mage/config/environment/'); foreach ($content as $file) { if (strpos($file, '.yml') !== false) { $environments[] = str_replace('.yml', '', $file); } } sort($environments); if (count($environments) > 0) { Console::output('These are your configured environments:', 1, 1); foreach ($environments as $environment) { Console::output('* ' . $environment . '', 2, 1); } Console::output('', 1, 1); $exitCode = 0; } else { Console::output('You don\'t have any environment configured.', 1, 2); } return $exitCode; } }