fix(skills): корректный запуск Python-портов на macOS/Linux

- subsystem-compile.py: авто-валидация через subprocess к subsystem-validate.py
  (вместо powershell.exe + .ps1), без проброса кода возврата — паритет с сиблингами
- resolve_v8path (12 db/epf .py): резолв каталога платформы по ОС (1cv8 без .exe
  на *nix), авто-поиск /opt/1cv8/*; ibcmd только явным путём, 1cv8c убран
- сообщения об ошибках платформо-нейтральные (ps1+py), коммент-заглушка PY-only в .ps1
- runner.mjs (v0.5): loadV8Context кросс-платформенный (1cv8/ibcmd без .exe)
- тесты: stdoutContains маркер валидатора (#26), негативный кейс db-update/error-bad-v8dir
- синхронный бамп версий ps1+py всех затронутых навыков

Fixes #26, #27

Co-Authored-By: Korolev Pavel <korolev.vrn@gmail.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-30 11:42:07 +03:00
co-authored by Korolev Pavel Claude Opus 4.8
parent 3a7f1c1763
commit 29999a2755
29 changed files with 379 additions and 213 deletions
@@ -1,4 +1,4 @@
# subsystem-compile v1.7 — Create 1C subsystem from JSON definition
# subsystem-compile v1.8 — Create 1C subsystem from JSON definition
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -1,10 +1,11 @@
#!/usr/bin/env python3
# subsystem-compile v1.7 — Create 1C subsystem from JSON definition
# subsystem-compile v1.8 — Create 1C subsystem from JSON definition
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
import os
import re
import subprocess
import sys
import uuid
import xml.etree.ElementTree as ET
@@ -591,11 +592,11 @@ def main():
# --- 6. Auto-validate ---
if not args.NoValidate:
script_dir = os.path.dirname(os.path.abspath(__file__))
validate_script = os.path.normpath(os.path.join(script_dir, '..', '..', 'subsystem-validate', 'scripts', 'subsystem-validate.ps1'))
if os.path.exists(validate_script):
validate_script = os.path.normpath(os.path.join(script_dir, '..', '..', 'subsystem-validate', 'scripts', 'subsystem-validate.py'))
if os.path.isfile(validate_script):
print()
print("--- Running subsystem-validate ---")
os.system(f'powershell.exe -NoProfile -File "{validate_script}" -SubsystemPath "{target_xml}"')
subprocess.run([sys.executable, validate_script, "-SubsystemPath", target_xml])
# --- 7. Summary ---
print()