def welcome(ident): lower = "| %s %s |" % (ident, version.version_string()) welcome_header = _get_welcome_stack() max_line_len = len(max(welcome_header.splitlines(), key=len)) footer = color_text(settings.PROG_NICE_NAME, 'green') footer += ": " footer += color_text(lower, 'blue', True) uncolored_footer = (settings.PROG_NICE_NAME + ": " + lower) if max_line_len - len(uncolored_footer) > 0: #this format string will center the uncolored text which #we will then replace with the color text equivalent centered_str = center_text(uncolored_footer, " ", max_line_len) footer = centered_str.replace(uncolored_footer, footer) print(welcome_header) print(footer) real_max = max(max_line_len, len(uncolored_footer)) slang = center_text(_welcome_slang(), ' ', real_max) print(color_text(slang, 'magenta', bold=True)) return ("-", real_max)
def welcome(ident): ver_str = version.version_string() lower = "|" if ident: lower += ident lower += " " lower += ver_str lower += "|" welcome_header = _get_welcome_stack().strip("\n\r") max_line_len = len(max(welcome_header.splitlines(), key=len)) footer = colored(settings.PROG_NICE_NAME, 'green', attrs=['bold']) + \ ": " + colored(lower, 'blue', attrs=['bold']) uncolored_footer = (settings.PROG_NICE_NAME + ": " + lower) if max_line_len - len(uncolored_footer) > 0: #this format string wil center the uncolored text which #we will then replace #with the color text equivalent centered_str = center_text(uncolored_footer, " ", max_line_len) footer = centered_str.replace(uncolored_footer, footer) print((welcome_header + os.linesep + footer)) return ("-", max_line_len)
def parse(): version_str = "%prog v" + version.version_string() help_formatter = IndentedHelpFormatter(width=HELP_WIDTH) parser = OptionParser(version=version_str, formatter=help_formatter) # Root options parser.add_option("-v", "--verbose", action="append_const", const=1, dest="verbosity", default=[1], help="increase the verbose level") parser.add_option( "--dryrun", action="store_true", dest="dryrun", default=False, help=("perform ACTION but do not actually run any of the commands" " that would normally complete ACTION: (default: %default)")) # Install/start/stop/uninstall specific options base_group = OptionGroup( parser, "Install & uninstall & start & stop specific options") base_group.add_option( "-p", "--persona", action="store", type="string", dest="persona_fn", default='conf/personas/devstack.sh.yaml', metavar="FILE", help="required persona yaml file to apply (default: %default)") base_group.add_option("-a", "--action", action="store", type="string", dest="action", metavar="ACTION", help="required action to perform: %s" % (_format_list(actions.get_action_names()))) base_group.add_option( "-d", "--directory", action="store", type="string", dest="dir", metavar="DIR", help=("empty root DIR for install or " "DIR with existing components for start/stop/uninstall")) base_group.add_option( "--no-prompt-passwords", action="store_false", dest="prompt_for_passwords", default=True, help="do not prompt the user for passwords", ) parser.add_option_group(base_group) # Uninstall and stop options stop_un_group = OptionGroup(parser, "Uninstall & stop specific options") stop_un_group.add_option( "-n", "--no-force", action="store_true", dest="force", help= "stop the continuation of ACTION if basic errors occur (default: %default)", default=False) parser.add_option_group(stop_un_group) un_group = OptionGroup(parser, "Uninstall specific options") un_group.add_option( "-k", "--keep-old", action="store_true", dest="keep_old", help= "uninstall will keep as much of the old install as it can (default: %default)", default=False) parser.add_option_group(un_group) # Extract only what we care about (options, args) = parser.parse_args() output = dict() output['dir'] = options.dir or "" output['dryrun'] = options.dryrun or False output['action'] = options.action or "" output['force'] = not options.force output['keep_old'] = options.keep_old output['extras'] = args output['persona_fn'] = options.persona_fn output['verbosity'] = len(options.verbosity) output['prompt_for_passwords'] = options.prompt_for_passwords return output
# The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = "index" # General information about the project. project = u"DEVSTACKpy" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. from devstack import version as devstack_version release = devstack_version.version_string() version = devstack_version.canonical_version_string() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # Set the default Pygments syntax highlight_language = "python" # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y'
def parse(): version_str = "%prog v" + version.version_string() help_formatter = IndentedHelpFormatter(width=HELP_WIDTH) parser = OptionParser(version=version_str, formatter=help_formatter) parser.add_option("-c", "--component", action="append", dest="component", help="openstack component: %s" % (_format_list(settings.COMPONENT_NAMES))) base_group = OptionGroup(parser, "Install/uninstall/start/stop options") base_group.add_option("-a", "--action", action="store", type="string", dest="action", metavar="ACTION", help="required action to perform: %s" % (_format_list(settings.ACTIONS))) base_group.add_option("-d", "--directory", action="store", type="string", dest="dir", metavar="DIR", help=("empty root DIR for install or " "DIR with existing components for start/stop/uninstall")) base_group.add_option("-i", "--ignore-deps", action="store_false", dest="ensure_deps", help="ignore dependencies when performing ACTION") base_group.add_option("-e", "--ensure-deps", action="store_true", dest="ensure_deps", help="ensure dependencies when performing ACTION (default: %default)", default=True) base_group.add_option("-r", "--ref-component", action="append", dest="r_component", metavar="COMPONENT", help="component which will not have ACTION applied but will be referenced as if it was (ACTION dependent)") base_group.add_option("-k", "--keep-packages", action="store_true", dest="keep_packages", help="uninstall will keep any installed packages on the system") parser.add_option_group(base_group) stop_un_group = OptionGroup(parser, "Uninstall/stop options") stop_un_group.add_option("-f", "--force", action="store_true", dest="force", help="force ACTION even if no trace file found (default: %default)", default=True) parser.add_option_group(stop_un_group) #extract only what we care about (options, args) = parser.parse_args() output = dict() output['components'] = options.component output['dir'] = options.dir output['ref_components'] = options.r_component output['action'] = options.action output['force'] = options.force output['ignore_deps'] = not options.ensure_deps output['keep_packages'] = options.keep_packages output['extras'] = args return output
def parse(): version_str = "%prog v" + version.version_string() help_formatter = IndentedHelpFormatter(width=HELP_WIDTH) parser = OptionParser(version=version_str, formatter=help_formatter) parser.add_option("-c", "--component", action="append", dest="component", help="openstack component: %s" % (_format_list(settings.COMPONENT_NAMES))) base_group = OptionGroup(parser, "Install & uninstall & start & stop specific options") base_group.add_option("-a", "--action", action="store", type="string", dest="action", metavar="ACTION", help="required action to perform: %s" % (_format_list(settings.ACTIONS))) default_dir = sh.joinpths(tempfile.gettempdir(), DEF_OS_DIR) base_group.add_option("-d", "--directory", action="store", type="string", dest="dir", metavar="DIR", default=default_dir, help=("empty root DIR for install or " "DIR with existing components for start/stop/uninstall " "(default: %default)")) base_group.add_option("-i", "--ignore-deps", action="store_false", dest="ensure_deps", help="ignore dependencies when performing ACTION") base_group.add_option("-e", "--ensure-deps", action="store_true", dest="ensure_deps", help="ensure dependencies when performing ACTION (default: %default)", default=True) base_group.add_option("-r", "--ref-component", action="append", dest="ref_components", metavar="COMPONENT", help="component which will not have ACTION applied but will be referenced as if it was (ACTION dependent)") parser.add_option_group(base_group) stop_un_group = OptionGroup(parser, "Uninstall & stop specific options") stop_un_group.add_option("-n", "--no-force", action="store_true", dest="force", help="stop the continuation of ACTION if basic errors occur (default: %default)", default=False) parser.add_option_group(stop_un_group) un_group = OptionGroup(parser, "Uninstall specific options") un_group.add_option("-k", "--keep-old", action="store_true", dest="keep_old", help="uninstall will keep as much of the old install as it can (default: %default)", default=False) parser.add_option_group(un_group) #extract only what we care about (options, args) = parser.parse_args() output = dict() output['components'] = options.component or list() output['dir'] = options.dir or "" output['ref_components'] = options.ref_components or list() output['action'] = options.action or "" output['force'] = not options.force output['ignore_deps'] = not options.ensure_deps output['keep_old'] = options.keep_old output['extras'] = args LOG.debug("Extracted options %s" % (output)) return output
def parse(): #version version_str = "%prog v" + version.version_string() help_formatter = IndentedHelpFormatter(width=HELP_WIDTH) parser = OptionParser(version=version_str, formatter=help_formatter) known_components = sorted(settings.COMPONENT_NAMES) components = "(" + ", ".join(known_components) + ")" parser.add_option("-c", "--component", action="append", dest="component", help="openstack component, ie %s" % (components)) base_group = OptionGroup(parser, "Install/uninstall/start/stop options") known_actions = sorted(settings.ACTIONS) actions = "(" + ", ".join(known_actions) + ")" base_group.add_option("-a", "--action", action="store", type="string", dest="action", metavar="ACTION", help="action to perform, ie %s" % (actions)) base_group.add_option("-d", "--directory", action="store", type="string", dest="dir", metavar="DIR", help="empty root DIR for install or "\ "DIR with existing components for start/stop/uninstall") base_group.add_option("-i", "--ignore-deps", action="store_false", dest="ensure_deps", help="ignore dependencies when performing ACTION") base_group.add_option("-e", "--ensure-deps", action="store_true", dest="ensure_deps", help="ensure dependencies when performing ACTION (default: %default)", default=True) base_group.add_option("-r", "--ref-component", action="append", dest="r_component", metavar="COMPONENT", help="component which will not have ACTION applied but will be referenced as if it was (ACTION dependent)") parser.add_option_group(base_group) stop_un_group = OptionGroup(parser, "Uninstall/stop options") stop_un_group.add_option("-f", "--force", action="store_true", dest="force", help="force ACTION even if no trace file found (default: %default)", default=True) parser.add_option_group(stop_un_group) misc_group = OptionGroup(parser, "Miscellaneous options") misc_group.add_option("--list-deps", action="store_true", dest="list_deps", help="show dependencies of COMPONENT (default: %default)", default=False) misc_group.add_option("--describe-components", action="store_true", dest="describe_comp", help="describe COMPONENT (default: %default)", default=False) parser.add_option_group(misc_group) (options, args) = parser.parse_args() #extract only what we care about output = dict() output['components'] = options.component output['dir'] = options.dir output['ref_components'] = options.r_component output['action'] = options.action output['list_deps'] = options.list_deps output['describe_comp'] = options.describe_comp output['force'] = options.force if options.ensure_deps: output['ignore_deps'] = False else: output['ignore_deps'] = True output['extras'] = args return output
source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'DEVSTACKpy' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. from devstack import version as devstack_version release = devstack_version.version_string() version = devstack_version.canonical_version_string() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # Set the default Pygments syntax highlight_language = 'python' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y'
def parse(): version_str = "%prog v" + version.version_string() help_formatter = IndentedHelpFormatter(width=HELP_WIDTH) parser = OptionParser(version=version_str, formatter=help_formatter) # Root options parser.add_option("-v", "--verbose", action="append_const", const=1, dest="verbosity", default=[1], help="increase the verbose level") parser.add_option("--dryrun", action="store_true", dest="dryrun", default=False, help=("perform ACTION but do not actually run any of the commands" " that would normally complete ACTION: (default: %default)")) # Install/start/stop/uninstall specific options base_group = OptionGroup(parser, "Install & uninstall & start & stop specific options") base_group.add_option("-p", "--persona", action="store", type="string", dest="persona_fn", default='conf/personas/devstack.sh.yaml', metavar="FILE", help="required persona yaml file to apply (default: %default)") base_group.add_option("-a", "--action", action="store", type="string", dest="action", metavar="ACTION", help="required action to perform: %s" % (_format_list(actions.get_action_names()))) base_group.add_option("-d", "--directory", action="store", type="string", dest="dir", metavar="DIR", help=("empty root DIR for install or " "DIR with existing components for start/stop/uninstall")) base_group.add_option("--no-prompt-passwords", action="store_false", dest="prompt_for_passwords", default=True, help="do not prompt the user for passwords", ) parser.add_option_group(base_group) # Uninstall and stop options stop_un_group = OptionGroup(parser, "Uninstall & stop specific options") stop_un_group.add_option("-n", "--no-force", action="store_true", dest="force", help="stop the continuation of ACTION if basic errors occur (default: %default)", default=False) parser.add_option_group(stop_un_group) un_group = OptionGroup(parser, "Uninstall specific options") un_group.add_option("-k", "--keep-old", action="store_true", dest="keep_old", help="uninstall will keep as much of the old install as it can (default: %default)", default=False) parser.add_option_group(un_group) # Extract only what we care about (options, args) = parser.parse_args() output = dict() output['dir'] = options.dir or "" output['dryrun'] = options.dryrun or False output['action'] = options.action or "" output['force'] = not options.force output['keep_old'] = options.keep_old output['extras'] = args output['persona_fn'] = options.persona_fn output['verbosity'] = len(options.verbosity) output['prompt_for_passwords'] = options.prompt_for_passwords return output