public function parse_command_args($command_parts, $command_options) { $args = array(); self::$options = array(); foreach ($command_options as $option_name => $option) { if (isset($option['short'])) { $option_short[$option['short']] = $option_name; } } foreach ($command_parts as $part) { if ($part[0] == '-') { if ($value_option_name) { trigger_error('--' . $option_name . ' need value', E_USER_ERROR); return false; } if ($part[1] == '-') { $option_name = substr($part, 2); if (isset($command_options[$option_name])) { if (isset($command_options[$option_name]['need_value']) && $command_options[$option_name]['need_value']) { $value_option_name = $option_name; } else { self::$options[$option_name] = true; } } else { trigger_error('--' . $option_name . ' bad option', E_USER_ERROR); return false; } } else { $params_len = strlen($part); for ($i = 1; $i < $params_len; $i++) { if ($value_option_name) { trigger_error('-' . $part[$i] . ' need value', E_USER_ERROR); return false; } else { if (isset($option_short[$part[$i]])) { $option_name = $option_short[$part[$i]]; if (isset($command_options[$option_name])) { if (isset($command_options[$option_name]['need_value']) && $command_options[$option_name]['need_value']) { $value_option_name = $option_name; } else { self::$options[$option_name] = true; } } else { trigger_error('--' . $option_name . ' bad option', E_USER_ERROR); return false; } } else { trigger_error('-' . $part[$i] . ' bad option', E_USER_ERROR); return false; } } } } } elseif ($value_option_name) { self::$options[$value_option_name] = $part; $value_option_name = false; } else { $args[] = $part; } } if ($value_option_name) { trigger_error('-' . $value_option_name . ' need value', E_USER_ERROR); } return $args; }
public function __construct() { $this->files = kernel::single('base_filesystem'); parent::__construct(); }