diff --git a/plum/cli/docopt_command.py b/plum/cli/docopt_command.py index 0a11d8ee..93cf889e 100644 --- a/plum/cli/docopt_command.py +++ b/plum/cli/docopt_command.py @@ -12,6 +12,9 @@ def docopt_full_help(docstring, *args, **kwargs): class DocoptCommand(object): + def docopt_options(self): + return {'options_first': True} + def sys_dispatch(self): self.dispatch(sys.argv[1:], None) @@ -22,7 +25,7 @@ class DocoptCommand(object): handler(command_options) def parse(self, argv, global_options): - options = docopt_full_help(getdoc(self), argv, options_first=True) + options = docopt_full_help(getdoc(self), argv, **self.docopt_options()) command = options['COMMAND'] if not hasattr(self, command): diff --git a/plum/cli/main.py b/plum/cli/main.py index 0e94f438..0e0cb8a5 100644 --- a/plum/cli/main.py +++ b/plum/cli/main.py @@ -1,4 +1,5 @@ import logging +import sys import re from inspect import getdoc @@ -70,6 +71,11 @@ class TopLevelCommand(Command): stop Stop services """ + def docopt_options(self): + options = super(TopLevelCommand, self).docopt_options() + options['version'] = "plum %s" % __version__ + return options + def ps(self, options): """ List services and containers.