in hack/release/wizard/releaseWizard.py [0:0]
def generate_asciidoc():
base_filename = os.path.join(state.get_release_folder(),
"solr_operator_release_%s"
% (state.release_version.replace(".", "_")))
filename_adoc = "%s.adoc" % base_filename
filename_html = "%s.html" % base_filename
fh = open(filename_adoc, "w")
fh.write("= Solr Operator Release %s\n\n" % state.release_version)
fh.write("(_Generated by releaseWizard.py %s at %s_)\n\n"
% (getScriptVersion(), datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")))
fh.write(":numbered:\n\n")
fh.write("%s\n\n" % template('help'))
for group in state.todo_groups:
if group.num_applies() == 0:
continue
fh.write("== %s\n\n" % group.get_title())
fh.write("%s\n\n" % group.get_description())
for todo in group.get_todos():
if not todo.applies(state.release_type):
continue
fh.write("=== %s\n\n" % todo.get_title())
if todo.is_done():
fh.write("_Completed %s_\n\n" % unix_to_datetime(todo.state['done_date']).strftime(
"%Y-%m-%d %H:%M UTC"))
if todo.get_asciidoc():
fh.write("%s\n\n" % todo.get_asciidoc())
else:
desc = todo.get_description()
if desc:
fh.write("%s\n\n" % desc)
state_copy = copy.deepcopy(todo.state)
state_copy.pop('done', None)
state_copy.pop('done_date', None)
if len(state_copy) > 0 or todo.user_input is not None:
fh.write(".Variables collected in this step\n")
fh.write("|===\n")
fh.write("|Variable |Value\n")
mykeys = set()
for e in ensure_list(todo.user_input):
mykeys.add(e.name)
for e in state_copy.keys():
mykeys.add(e)
for key in mykeys:
val = "(not set)"
if key in state_copy:
val = state_copy[key]
fh.write("\n|%s\n|%s\n" % (key, val))
fh.write("|===\n\n")
cmds = todo.get_commands()
if cmds:
if cmds.commands_text:
fh.write("%s\n\n" % cmds.get_commands_text())
fh.write("[source,sh]\n----\n")
if cmds.env:
for key in cmds.env:
val = cmds.env[key]
if is_windows():
fh.write("SET %s=%s\n" % (key, val))
else:
fh.write("export %s=%s\n" % (key, val))
fh.write(abbreviate_homedir("cd %s\n" % cmds.get_root_folder()))
cmds2 = ensure_list(cmds.commands)
for c in cmds2:
for line in c.display_cmd():
fh.write("%s\n" % line)
fh.write("----\n\n")
if todo.post_description and not todo.get_asciidoc():
fh.write("\n%s\n\n" % todo.get_post_description())
if todo.links:
fh.write("Links:\n\n")
for l in todo.links:
fh.write("* %s\n" % expand_jinja(l))
fh.write("\n")
fh.close()
print("Wrote file %s" % os.path.join(state.get_release_folder(), filename_adoc))
print("Running command 'asciidoctor %s'" % filename_adoc)
run_follow("asciidoctor %s" % filename_adoc)
if os.path.exists(filename_html):
open_file(filename_html)
else:
print("Failed generating HTML version, please install asciidoctor")
pause()