Add or get option.

        Here are some examples::

            command.option('-v, --verbose', 'show more log')
            command.option('--tag <tag>', 'tag of the package')
            command.option('-s, --source <source>', 'the source repo')

        :param name: arguments of the option
        :param description: description of the option
        :param action: a function to be invoked
        :param resolve: a function to resolve the data

def option(self, name, description=None, action=None, resolve=None):
        """
        Add or get option.

        Here are some examples::

            command.option('-v, --verbose', 'show more log')
            command.option('--tag <tag>', 'tag of the package')
            command.option('-s, --source <source>', 'the source repo')

        :param name: arguments of the option
        :param description: description of the option
        :param action: a function to be invoked
        :param resolve: a function to resolve the data

        """

        if isinstance(name, Option):
            option = name
        else:
            name = name.strip()
            option = Option(
                name=name, description=description,
                action=action, resolve=resolve,
            )

        self._option_list.append(option)
        return self