'Modified from ``twisted.python.usage.Options.getSynopsis``.
Does not include the parent synopsis if inside a subcommand.
This allows separate synopses to be defined for each subcommand and
the parent command, facilitating a prettier output, e.g.
flocker-ca --help
Usage: flocker-ca <command> [options]
flocker-ca initialize --help
Usage: flocker-ca initialize <name>
Instead of:
flocker-ca --help
Usage: flocker-ca <command> [options]
flocker-ca initialize --help
Usage: flocker-ca <command> [options] initialize <name>
Returns a string containing a description of these options and how to
pass them to the executed file.'

def getSynopsis(self):

    if (self.parent is None):
        default = ('Usage:    %s%s' % (os.path.basename(sys.argv[0]), ((self.longOpt and '    [options]') or '')))
    else:
        default = ('%s' % ((self.longOpt and '[options]') or ''))
    synopsis = getattr(self, 'synopsis', default)
    synopsis = synopsis.rstrip()
    if (self.parent is not None):
        commandName = getattr(self.parent, 'command_name', os.path.basename(sys.argv[0]))
        synopsis = ('Usage:    %s    %s' % (commandName, '    '.join((self.parent.subCommand, synopsis))))
    return synopsis
