Adding a Version Option to Your App¶
Almost every app out there supports a --version
option of some sort that
provides the end user with version information. This is pretty important to
include, so we’ve added an example below.
from cement.core.foundation import CementApp
from cement.core.controller import CementBaseController
VERSION = '0.9.1'
BANNER = """
My Awesome Application v%s
Copyright (c) 2014 John Doe Enterprises
""" % VERSION
class MyBaseController(CementBaseController):
class Meta:
label = 'base'
description = 'MyApp Does Amazing Things'
arguments = [
(['-v', '--version'], dict(action='version', version=BANNER)),
]
class MyApp(CementApp):
class Meta:
label = 'myapp'
base_controller = MyBaseController
with MyApp() as app:
app.run()
This looks like:
$ python myapp.py --help
usage: myapp.py (sub-commands ...) [options ...] {arguments ...}
MyApp Does Amazing Things
optional arguments:
-h, --help show this help message and exit
--debug toggle debug output
--quiet suppress all output
-v, --version show program's version number and exit
$ python myapp.py --version
My Awesome Application v0.9.1
Copyright (c) 2014 John Doe Enterprises