Files
wehub-resource-sync e768098d0e
Flake8 Lint / flake8 (push) Waiting to run
Spell check CI / Spell_Check (push) Waiting to run
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:39:52 +08:00

61 lines
2.1 KiB
Python

import argparse
from pathlib import Path
from jinja2 import Environment, FileSystemLoader
from ghactions_driver.readme_parse import readme_parser
from ghactions_driver.readme_step import ReadmeStepsManage
def comment_pytest(full_text: str):
# separate full_text into lines, group them by start with pytest or not
full_text_lines = full_text.split("\n")
full_text_pytest = []
full_text_no_pytest = []
for line in full_text_lines:
if line.strip().startswith("python -m unittest"):
full_text_pytest.append(line)
else:
full_text_no_pytest.append(line)
return "\n".join(full_text_no_pytest), "\n".join(full_text_pytest)
def write_readme_shell(readme_path: str, output_folder: str):
full_text = readme_parser(readme_path)
full_text, full_text_pytest = comment_pytest(full_text)
Path(ReadmeStepsManage.git_base_dir())
bash_script_path = (
Path(ReadmeStepsManage.git_base_dir()) / output_folder / "bash_script.sh"
)
bash_script_backup = (
Path(ReadmeStepsManage.git_base_dir()) / output_folder / "bash_script_pytest.sh"
)
template_env = Environment(
loader=FileSystemLoader(
Path(ReadmeStepsManage.git_base_dir())
/ "scripts/readme/ghactions_driver/bash_script"
)
)
bash_script_template = template_env.get_template("bash_script.sh.jinja2")
with open(bash_script_path, "w") as f:
f.write(bash_script_template.render({"command": full_text}))
if full_text_pytest != "":
with open(bash_script_backup, "w") as f:
f.write(bash_script_template.render({"command": full_text_pytest}))
if __name__ == "__main__":
# setup argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"-f",
"--readme-file",
help="Input README.md example 'examples/flows/standard/basic/README.md'",
)
parser.add_argument(
"-o",
"--output-folder",
help="Output folder for bash_script.sh example 'examples/flows/standard/basic/'",
)
args = parser.parse_args()
write_readme_shell(args.readme_file, args.output_folder)