} else {
$ar = $cls->getStaticProperties();
if (isset($ar['cli_opts'])) {
+ //echo "getting cli opts?\n";
$val = $cls->getStaticPropertyValue('cli_opts');
}
}
$val = is_array($val) ? $val : array();
while ($cls = $cls->getParentClass()) {
- var_dump($cls->name);
+ //var_dump($cls->name);
try {
$vadd = array();
} catch (ReflectionException $e) {
- print_r($e);
+ //print_r($e);
echo "cliParse:Warning: {$e->getMessage()}\n";
+ exit;
}
if (empty($val)) {
return false;
$newargs = Console_Getargs::factory($val, $ar);
+
if (!is_a($newargs, 'PEAR_Error')) {
return $newargs->getValues();
}
require_once 'Console/Getargs.php';
$ar = $_SERVER['argv'];
$call = array(array_shift($ar)); // remove index.php
- $call[] = array_shift($ar);
- //var_dump($ar);
+ $has_class = false;
+ if (isset($ar[0]) && $ar[0][0] != '-') {
+ $call[] = array_shift($ar); // remove our class...
+ $has_class = true;
+ }
$val = self::$cli_opts;
$newargs = Console_Getargs::factory($val, $ar);
- if (is_a($newargs, 'PEAR_Error')) {
-
-
-
- if ($newargs->getCode() === CONSOLE_GETARGS_ERROR_USER) {
- // since we do not handle all the arguemnts here...
- // skip errors if we find unknown arguments.
- if (preg_match('/^Unknown argument/', $newargs->getMessage())) {
- return false;
- }
-
- // User put illegal values on the command line.
- echo Console_Getargs::getHelp($val,
- $helpHeader, "\n\n".$newargs->getMessage(), 78, 4)."\n\n";
- exit;
- }
- if ($newargs->getCode() === CONSOLE_GETARGS_HELP) {
-
- return true;// hel
- }
-
- return false;
+ // we need to read our 'special arguments' here - otherwise other arguments, cause getargs to fail
+ switch (true) {
+ case in_array('--pman-nodatabase', $ar):
+ echo "Turning off database\n";
+ $this->ff->nodatabase= true;
+
+ break;
+
}
-
- // now handle real arguments..
- $ret = $newargs->getValues();
- foreach($ret as $k=>$v) {
- switch($k) {
- case 'pman-nodatabase':
- //echo "Turning off database";
- $this->ff->nodatabase= true;
-
- break;
-
- default:
- die("need to fix option $k");
+ if (!is_a($newargs, 'PEAR_Error')) {
+ return false;
+ }
+ list($optional, $required, $params) = Console_Getargs::getOptionalRequired($val);
+
+ $helpHeader = 'Usage: php ' . implode (' ', $call) . ' '.
+ $optional . ' ' . $required . ' ' . $params . "\n\n";
+
+ if ($newargs->getCode() === CONSOLE_GETARGS_ERROR_USER) {
+ // since we do not handle all the arguemnts here...
+ // skip errors if we find unknown arguments.
+ if (preg_match('/^Unknown argument/', $newargs->getMessage())) {
+ return false;
}
+ // User put illegal values on the command line.
+ echo Console_Getargs::getHelp($val,
+ $helpHeader, "\n\n".$newargs->getMessage(), 78, 4)."\n\n";
+ exit;
}
+ if ($newargs->getCode() === CONSOLE_GETARGS_HELP) {
+ if (!$has_class) {
+
+ echo Console_Getargs::getHelp($val,
+ $helpHeader, NULL, 78, 4)."\n\n";
+ exit;
+ }
+ return true;// help is handled later in the flow?
+ }
+
return false;
+
}