* Add shared soul2_info module for README INFO extraction. Co-authored-by: Cursor <cursoragent@cursor.com> * Use soul2_info module in prepare-info-string.py. Co-authored-by: Cursor <cursoragent@cursor.com> * Derive soul2_info_text from README in push-i18n-english.py. Co-authored-by: Cursor <cursoragent@cursor.com> * Gitignore generated build_date.xml and soul2_info.xml. Co-authored-by: Cursor <cursoragent@cursor.com> * Bootstrap build_date.xml when missing at build time. Co-authored-by: Cursor <cursoragent@cursor.com> * Stop tracking generated build_date and soul2_info string resources. Co-authored-by: Cursor <cursoragent@cursor.com> * Store testing application ID in tracked app sources. Canonical tree uses net.kaki87.soul2.testing and Soul2⁺ Browser so feature-branch builds avoid package rewrites. Co-authored-by: Cursor <cursoragent@cursor.com> * Auto-commit libsoulamz prebuilts on main CI builds. Skip follow-up workflow runs for bundled-warp/lib updates via paths-ignore and [skip ci] commit message. Co-authored-by: Cursor <cursoragent@cursor.com> * Document CI refresh of libsoulamz prebuilts. Co-authored-by: Cursor <cursoragent@cursor.com> * Document testing package in git and generated build artifacts. Co-authored-by: Cursor <cursoragent@cursor.com> * Document source tree testing ID and build-generated resources. Co-authored-by: Cursor <cursoragent@cursor.com> * Gitignore Python __pycache__ directories. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
40 lines
1.2 KiB
Python
Executable file
40 lines
1.2 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
"""Extract README INFO section and write it as an Android string resource (HTML)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
SCRIPTS_DIR = Path(__file__).resolve().parent
|
|
ROOT = SCRIPTS_DIR.parent
|
|
sys.path.insert(0, str(SCRIPTS_DIR))
|
|
|
|
from soul2_info import extract_info, soul2_info_resources_xml
|
|
README = ROOT / "README.md"
|
|
OUT_XML = ROOT / "app" / "res" / "values" / "soul2_info.xml"
|
|
|
|
|
|
def main() -> int:
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("--readme", type=Path, default=README)
|
|
parser.add_argument("--out", type=Path, default=OUT_XML)
|
|
args = parser.parse_args()
|
|
|
|
if not args.readme.exists():
|
|
print(f"error: missing {args.readme}", file=sys.stderr)
|
|
return 1
|
|
try:
|
|
html_body = extract_info(args.readme.read_text(encoding="utf-8"))
|
|
except ValueError as exc:
|
|
print(f"error: {exc}", file=sys.stderr)
|
|
return 1
|
|
args.out.parent.mkdir(parents=True, exist_ok=True)
|
|
args.out.write_text(soul2_info_resources_xml(html_body), encoding="utf-8")
|
|
print(f"Wrote {args.out} ({len(html_body)} chars of HTML)")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|