mirror of
https://github.com/TommyFang2077/dsh-desktop.git
synced 2026-08-17 09:06:36 +08:00
Ship screenshots and third-party notices for the desktop shell, and package Windows, macOS, deb, rpm, and Flatpak from GitHub Releases. Co-authored-by: Cursor <cursoragent@cursor.com>
59 lines
2.1 KiB
Python
Executable File
59 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
||
"""Localize vendored anchored-standard preset.yml files (used by make vendor)."""
|
||
|
||
from __future__ import annotations
|
||
|
||
import json
|
||
import re
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
PRESET_NAME_ZH = "锚定式标准(实验)"
|
||
PRESET_DESCRIPTION_ZH = (
|
||
"首轮使用 Minimal 的真实工具对(持久 bash + str_replace_editor),"
|
||
"不自动注入工作区或技能上下文;首次工具调用或回复后开放完整 Standard 工具。"
|
||
)
|
||
ZERO_PRESET_NAME_ZH = "零工具锚定式标准(实验)"
|
||
ZERO_PRESET_DESCRIPTION_ZH = (
|
||
"先插入一轮无工具的锚定对话(固定提示),从下一轮起开放完整 Standard 工具。"
|
||
)
|
||
|
||
|
||
def localize_preset_yml(text: str, name: str, description: str) -> str:
|
||
body = text.replace("\r\n", "\n")
|
||
if not body.endswith("\n"):
|
||
body += "\n"
|
||
name_line = f"name: {json.dumps(name, ensure_ascii=False)}\n"
|
||
desc_line = f"description: {json.dumps(description, ensure_ascii=False)}\n"
|
||
name_match = re.search(r"(?m)^name:.*\n", body)
|
||
if name_match:
|
||
body = body[: name_match.start()] + name_line + body[name_match.end() :]
|
||
else:
|
||
body = name_line + body
|
||
desc_match = re.search(r"(?m)^description:(?:[ \t].*)?\n(?:[ \t].+\n)*", body)
|
||
if desc_match:
|
||
return body[: desc_match.start()] + desc_line + body[desc_match.end() :]
|
||
name_written = re.search(r"(?m)^name:.*\n", body)
|
||
if name_written:
|
||
return body[: name_written.end()] + desc_line + body[name_written.end() :]
|
||
return desc_line + body
|
||
|
||
|
||
def main(argv: list[str]) -> int:
|
||
if len(argv) < 2:
|
||
print("usage: localize_preset.py <preset.yml> [zero]", file=sys.stderr)
|
||
return 2
|
||
path = Path(argv[1])
|
||
zero = len(argv) > 2 and argv[2] == "zero"
|
||
name = ZERO_PRESET_NAME_ZH if zero else PRESET_NAME_ZH
|
||
description = ZERO_PRESET_DESCRIPTION_ZH if zero else PRESET_DESCRIPTION_ZH
|
||
path.write_text(
|
||
localize_preset_yml(path.read_text(encoding="utf-8"), name, description),
|
||
encoding="utf-8",
|
||
)
|
||
return 0
|
||
|
||
|
||
if __name__ == "__main__":
|
||
raise SystemExit(main(sys.argv))
|