diff --git a/setup/cli/modules/class.module.php b/setup/cli/modules/class.module.php index 421e49bd11a22f115af0e9d3c288099f07859e3f..a1647ce3cac8d2be9a57e29ab0fe60fe1eb82ce5 100644 --- a/setup/cli/modules/class.module.php +++ b/setup/cli/modules/class.module.php @@ -157,8 +157,18 @@ class Module { if ($this->arguments) { echo "\nArguments:\n"; foreach ($this->arguments as $name=>$help) + $extra = ''; + if (is_array($help)) { + if (isset($help['options']) && is_array($help['options'])) { + foreach($help['options'] as $op=>$desc) + $extra .= wordwrap( + "\n $op - $desc", 76, "\n "); + } + $help = $help['help']; + } echo $name . "\n " . wordwrap( - preg_replace('/\s+/', ' ', $help), 76, "\n "); + preg_replace('/\s+/', ' ', $help), 76, "\n ") + .$extra."\n"; } if ($this->epilog) { @@ -198,6 +208,10 @@ class Module { foreach (array_keys($this->arguments) as $idx=>$name) if (!isset($this->_args[$idx])) $this->optionError($name . " is a required argument"); + elseif (is_array($this->arguments[$name]) + && isset($this->arguments[$name]['options']) + && !isset($this->arguments[$name]['options'][$this->_args[$idx]])) + $this->optionError($name . " does not support such a value"); else $this->_args[$name] = &$this->_args[$idx];