soul-browser/scripts/prepare-info-string.py
KaKi87 de895672ae
Clean dev builds: testing ID in git, generated artifacts gitignored (#69)
* 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>
2026-08-25 19:32:34 +02:00

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())