plugin commands: load the plugin in func_wrapper
This commit is contained in:
@@ -1574,6 +1574,9 @@ def plugin_command(s, plugin_name):
|
|||||||
@command(s)
|
@command(s)
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
async def func_wrapper(*args, **kwargs):
|
async def func_wrapper(*args, **kwargs):
|
||||||
|
cmd_runner = args[0] # type: Commands
|
||||||
|
daemon = cmd_runner.daemon
|
||||||
|
kwargs['plugin'] = daemon._plugins.get_plugin(plugin_name)
|
||||||
return await func(*args, **kwargs)
|
return await func(*args, **kwargs)
|
||||||
setattr(Commands, name, func_wrapper)
|
setattr(Commands, name, func_wrapper)
|
||||||
return func_wrapper
|
return func_wrapper
|
||||||
@@ -1838,6 +1841,8 @@ def get_parser():
|
|||||||
if optname in ['wallet_path', 'wallet']:
|
if optname in ['wallet_path', 'wallet']:
|
||||||
add_wallet_option(p)
|
add_wallet_option(p)
|
||||||
continue
|
continue
|
||||||
|
if optname in ['plugin']:
|
||||||
|
continue
|
||||||
a, help = command_options[optname]
|
a, help = command_options[optname]
|
||||||
b = '--' + optname
|
b = '--' + optname
|
||||||
action = "store_true" if default is False else 'store'
|
action = "store_true" if default is False else 'store'
|
||||||
|
|||||||
@@ -7,16 +7,14 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
plugin_name = "labels"
|
plugin_name = "labels"
|
||||||
|
|
||||||
|
|
||||||
@plugin_command('w', plugin_name)
|
@plugin_command('w', plugin_name)
|
||||||
async def push(self: 'Commands', wallet=None) -> int:
|
async def push(self: 'Commands', plugin: 'LabelsPlugin' = None, wallet=None) -> int:
|
||||||
""" push labels to server """
|
""" push labels to server """
|
||||||
plugin: 'LabelsPlugin' = self.daemon._plugins.get_plugin(plugin_name)
|
|
||||||
return await plugin.push_thread(wallet)
|
return await plugin.push_thread(wallet)
|
||||||
|
|
||||||
|
|
||||||
@plugin_command('w', plugin_name)
|
@plugin_command('w', plugin_name)
|
||||||
async def pull(self: 'Commands', wallet=None) -> int:
|
async def pull(self: 'Commands', plugin: 'LabelsPlugin' = None, wallet=None) -> int:
|
||||||
""" pull labels from server """
|
""" pull labels from server """
|
||||||
assert wallet is not None
|
|
||||||
plugin: 'LabelsPlugin' = self.daemon._plugins.get_plugin(plugin_name)
|
|
||||||
return await plugin.pull_thread(wallet, force=False)
|
return await plugin.pull_thread(wallet, force=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user