<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cli_plugin_add_argument(*args, **kwargs):
 """ Decorator generator that adds an argument to the cli plugin based on the decorated function Args: *args: Any args to be passed to :func:`argparse.ArgumentParser.add_argument` *kwargs: Any keyword args to be passed to :func:`argparse.ArgumentParser.add_argument` Returns: function: Decorator that builds or extends the cliplugin for the decorated function, adding the given argument definition Examples: <class 'cli.CLIPluginFuncWrapper'> [(('-m', '--mogambo'), {'action': 'store_true'})] <class 'cli.CLIPluginFuncWrapper'> [(('-b', '--bogabmo'), {'action': 'store_false'}), (('-m', '--mogambo'), {'action': 'store_true'})] """


    def decorator(func):
        if not isinstance(func, CLIPluginFuncWrapper):
            func = CLIPluginFuncWrapper(do_run=func)

        func.add_argument(*args, **kwargs)
        return func

    return decorator