protected static function helpAction()
    {
        $class = new \ReflectionClass(static::getCurrentClass());
        $methods = $class->getMethods();
        $commands = array();
        $comments = array();
        $commandLen = 0;
        foreach ($methods as $method) {
            $methodName = (string) $method->getName();
            if (substr($methodName, -6, 6) == 'Action') {
                $command = substr($methodName, 0, strlen($methodName) - 6);
                $comment = preg_replace('#^[^a-zA-Z0-9_.()-]*(.*?)[^a-zA-Z0-9_.()-]*$#', '\1', $method->getDocComment());
                $commandLen = max(strlen($command), $commandLen);
                $commands[] = $command;
                $comments[] = $comment;
            }
        }
        $commandLen++;
        echo "\n  Usage: " . self::green() . basename($_SERVER['argv'][0]) . self::yellow() . ' <command>' . self::resetColor() . " [options]\n\n";
        foreach ($commands as $key => $command) {
            printf(self::yellow() . " %' " . $commandLen . 's' . self::resetColor() . ": %s\n", $command, $comments[$key]);
        }
        echo "\n";
    }