Arquivos
wMind/mind3rd/API/programs/Generate.php
T
2011-04-25 00:48:37 -03:00

84 linhas
2.5 KiB
PHP
Arquivo Executável

<?php
/**
* This file is part of TheWebMind 3rd generation.
*
* @author Felipe Nascimento de Moura <felipenmoura@gmail.com>
* @license licenses/mind3rd.license
*/
use Symfony\Component\Console\Input\InputArgument,
Symfony\Component\Console\Input\InputOption,
Symfony\Component\Console;
/**
* This class represents the program auth, receiving the user and
* may also receive the password. It will start your session
* allowing you to run the restricted programs
*
* @author Felipe Nascimento de Moura <felipenmoura@gmail.com>
*/
class Generate extends MindCommand implements program
{
public $lobe;
public $param;
public $detail;
public $optional;
public $extra;
public function __construct()
{
$dir= \theos\Gosh::getLobesDir();
$d = dir($dir);
$options= Array();
$avOpts= Array();
while (false !== ($entry = $d->read())) {
if(is_dir($dir.$entry) && substr($entry, 0, 1) != '.')
{
$options[]= " >".$entry."\n";
$avOpts[]= $entry;
}
}
$d->close();
$help= <<<EOT
will generate an output.
This program uses one(or more) of the Lobe classes to generate different
data, structure or output.
EOT;
$help.= "\n Currently installed Lobes:\n".implode("", $options);
$this->setCommandName('generate')
->setDescription('Generates different outputs')
->setRestrict(true)
->setAction('action')
->setHelp($help);
$this->addRequiredArgument('lobe', 'Lobe to be used', $avOpts);
$this->addOptionalArgument('param', 'A param for that command');
$this->addOptionalArgument('detail', 'A detail for that command');
$this->addOptionalArgument('optional', 'An optional argument');
$this->addOptionalArgument('extra', 'Extra data to be passed');
$this->init();
}
public function action()
{
if(!isset($_SESSION['currentProject']))
{
Mind::write('currentProjectRequired');
Mind::write('currentProjectRequiredTip');
return false;
}
Mind::write('thinking');
if($exec= Mind::$gosh->generate(Array(
$this->lobe,
$this->param,
$this->detail,
$this->optional,
$this->extra
)))
return false;
return $this;
}
}