def rst_index(out=sys.stdout): out.write('\n') index = spack.main.index_commands() sections = index['long'] dmax = max(len(section_descriptions.get(s, s)) for s in sections) + 2 cmax = max(len(c) for _, c in sections.items()) + 60 row = "%s %s\n" % ('=' * dmax, '=' * cmax) line = '%%-%ds %%s\n' % dmax out.write(row) out.write(line % (" Category ", " Commands ")) out.write(row) for section, commands in sorted(sections.items()): description = section_descriptions.get(section, section) for i, cmd in enumerate(sorted(commands)): description = description.capitalize() if i == 0 else '' ref = ':ref:`%s <spack-%s>`' % (cmd, cmd) comma = ',' if i != len(commands) - 1 else '' bar = '| ' if i % 8 == 0 else ' ' out.write(line % (description, bar + ref + comma)) out.write(row)