浏览代码

Implement --version flag

Aanand Prasad 12 年之前
父节点
当前提交
9f1d08c54b
共有 2 个文件被更改,包括 10 次插入1 次删除
  1. 4 1
      plum/cli/docopt_command.py
  2. 6 0
      plum/cli/main.py

+ 4 - 1
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):

+ 6 - 0
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.