summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2012-10-31 10:26:55 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2012-10-31 10:26:55 +0000
commit3e5be4e232d5f0e9d5a9690560a1f0ee689745ca (patch)
treedd496f464d429dca00c0db4163ae9217d9aa58a4
parent17bd68f0dc622d3c6c508d366c8fa5fc00b9790b (diff)
downloaddefinitions-3e5be4e232d5f0e9d5a9690560a1f0ee689745ca.tar.gz
Set option group for some advanced settings
It would be nice to put every option in a group, but for now the built-in cliapp options cannot be grouped so the output is less than ideal. Also, we have no way of setting an order for groups, which results in e.g. 'Advanced Options' preceeding 'General Options' etc.
-rwxr-xr-xmorphlib/app.py56
-rw-r--r--morphlib/plugins/syslinux-disk-systembuilder_plugin.py3
2 files changed, 38 insertions, 21 deletions
diff --git a/morphlib/app.py b/morphlib/app.py
index e4a2cd29..8769b41c 100755
--- a/morphlib/app.py
+++ b/morphlib/app.py
@@ -52,13 +52,11 @@ defaults = {
class Morph(cliapp.Application):
def add_settings(self):
- # Logging
self.settings.boolean(['verbose', 'v'],
'show what is happening in much detail')
self.settings.boolean(['quiet', 'q'],
'show no output unless there is an error')
- # General Options
self.settings.string(['cachedir'],
'cache git repositories and build results in DIR',
metavar='DIR',
@@ -77,68 +75,84 @@ class Morph(cliapp.Application):
metavar='PREFIX, ...',
default=defaults['trove-prefix'])
- # Advanced Options
+ group_advanced = 'Advanced Options'
self.settings.boolean(['no-git-update'],
'do not update the cached git repositories '
- 'automatically')
+ 'automatically',
+ group=group_advanced)
self.settings.string_list(['repo-alias'],
'list of URL prefix definitions, in the '
'form: example=git://git.example.com/%s'
'#git@git.example.com/%s',
metavar='ALIAS=PREFIX#PULL#PUSH',
- default=defaults['repo-alias'])
+ default=defaults['repo-alias'],
+ group=group_advanced)
self.settings.string(['cache-server'],
'HTTP URL of the morph cache server to use. '
'If not provided, defaults to '
'http://TROVEHOST:8080/',
metavar='URL',
- default=None)
+ default=None,
+ group=group_advanced)
self.settings.string(['tarball-server'],
'base URL to download tarballs. '
'If not provided, defaults to '
'http://TROVEHOST/tarballs/',
metavar='URL',
- default=None)
+ default=None,
+ group=group_advanced)
# Build Options
+ group_build = 'Build Options'
self.settings.boolean(['bootstrap'],
'build stuff in bootstrap mode; this is '
'DANGEROUS and will install stuff on your '
- 'system')
+ 'system',
+ group=group_build)
self.settings.string(['ccache-remotedir'],
'allow ccache to download objects from REMOTEDIR '
'if they are not cached locally',
metavar='REMOTEDIR',
- default=defaults['ccache-remotedir'])
+ default=defaults['ccache-remotedir'],
+ group=group_build)
self.settings.integer(['ccache-remotenlevels'],
'assume ccache directory objects are split into '
'NLEVELS levels of subdirectories',
metavar='NLEVELS',
- default=defaults['ccache-remotenlevels'])
+ default=defaults['ccache-remotenlevels'],
+ group=group_build)
self.settings.boolean(['keep-path'],
- 'do not touch the PATH environment variable')
+ 'do not touch the PATH environment variable',
+ group=group_build)
self.settings.integer(['max-jobs'],
'run at most N parallel jobs with make (default '
'is to a value based on the number of CPUs '
'in the machine running morph',
metavar='N',
- default=defaults['max-jobs'])
- self.settings.boolean(['no-ccache'], 'do not use ccache')
- self.settings.boolean(['no-distcc'], 'do not use distcc')
+ default=defaults['max-jobs'],
+ group=group_build)
+ self.settings.boolean(['no-ccache'], 'do not use ccache',
+ group=group_build)
+ self.settings.boolean(['no-distcc'], 'do not use distcc',
+ group=group_build)
self.settings.string(['prefix'],
'build chunks with prefix PREFIX',
- metavar='PREFIX', default=defaults['prefix'])
+ metavar='PREFIX', default=defaults['prefix'],
+ group=group_build)
self.settings.boolean(['staging-chroot'],
'build things in an isolated chroot '
- '(default: true)')
+ '(default: true)',
+ group=group_build)
self.settings.string_list(['staging-filler'],
'use FILE as contents of build chroot',
- metavar='FILE')
+ metavar='FILE',
+ group=group_build)
self.settings.string(['target-cflags'],
'inject additional CFLAGS into the environment '
'that is used to build chunks',
metavar='CFLAGS',
- default='')
+ default='',
+ group=group_build)
self.settings.string(['tempdir'],
'temporary directory to use for builds '
'(this is separate from just setting $TMPDIR '
@@ -147,13 +161,15 @@ class Morph(cliapp.Application):
'this setting can point at a directory in '
'NFS)',
metavar='DIR',
- default=os.environ.get('TMPDIR'))
+ default=os.environ.get('TMPDIR'),
+ group=group_build)
self.settings.string(['toolchain-target'],
'set the TOOLCHAIN_TARGET variable which is used '
'in some chunks to determine which architecture '
'to build tools for',
metavar='TOOLCHAIN_TARGET',
- default=defaults['toolchain-target'])
+ default=defaults['toolchain-target'],
+ group=group_build)
def check_time(self):
# Check that the current time is not far in the past.
diff --git a/morphlib/plugins/syslinux-disk-systembuilder_plugin.py b/morphlib/plugins/syslinux-disk-systembuilder_plugin.py
index cd734e29..cc47389c 100644
--- a/morphlib/plugins/syslinux-disk-systembuilder_plugin.py
+++ b/morphlib/plugins/syslinux-disk-systembuilder_plugin.py
@@ -91,7 +91,8 @@ class SyslinuxDiskBuilderPlugin(cliapp.Plugin):
['syslinux-mbr-search-paths'],
'A list of files to search for to use as the syslinux mbr',
default=['/usr/lib/extlinux/mbr.bin',
- '/usr/share/syslinux/mbr.bin'])
+ '/usr/share/syslinux/mbr.bin'],
+ group='Build Options')
self.app.system_kind_builder_factory.register(SyslinuxDiskBuilder)
def disable(self):