v8-runner

init

Начните с init, если исходники уже лежат в каталоге, а проекта раннера ещё нет. Команда находит наборы исходников и записывает настройки проекта.

Вывод

init

v8-runner init

Создаёт v8project.yaml и местный слой v8project.local.yaml, добавляет местный слой в .gitignore. Определяет формат исходников и, если возможно, версию платформы. Платформу не запускает и базу не создаёт.

workPath не записывает: по умолчанию это .build/v8-runner. Объявляет origin с адресом File=.local/db — файловой базой в localPath, которую удаление workPath не трогает. Это настройка будущей базы; для её создания нужна команда infobase create.

Результаты: проект записан, предупреждения, существующий проект, невалидные исходники, ошибка записи.

init --infobase

v8-runner init --infobase 'Srvr=srv:1541;Ref=demo'

Записывает указанную строку подключения в infobases.origin.connection местного файла. Базу не читает и не меняет; вместо строкового адреса здесь нельзя передать имя базы проекта.

Адрес также задаётся через --connection; передавать его вместе с --infobase нельзя.

Результаты: адрес объявлен, конфликт адреса.

init --format / --output

v8-runner init --format edt --output config/v8project.yaml --force

--format auto выбирает формат по найденным исходникам; designer и edt задают его явно. --output меняет путь основного файла внутри проекта: проект — каталог запуска, там ищутся наборы и лежит его .gitignore. Местный файл располагается рядом с основным, пути исходников записываются относительно этого каталога.

Результаты: файлы записаны по выбранному пути, неподходящий ключ, путь вне проекта.

Особенности исходников

Конфигуратор
Находит XML-исходники платформы и записывает format: DESIGNER.
EDT
Находит проекты EDT и записывает format: EDT. Для расширений проверяет Base-Project в DT-INF/PROJECT.PMF.

Выбор формата не преобразует файлы. Для преобразования используйте convert.

Исполнение

Команда работает с файлами проекта независимо от режима доступа к базе: файлового, кластерного или автономного. Читает исходники, определяет формат и наборы, проверяет адрес origin, затем записывает основной и местный файлы и .gitignore. Платформу не запускает, доступность базы не проверяет и базу не создаёт.

Успешные результаты

Примеры ответов; пути и длительность зависят от запуска.

Исходники найдены

Для init. В ответе перечислены пути записанных файлов, формат и найденные наборы исходников. Пример ответа:

path: v8project.yaml
local path: v8project.local.yaml
gitignore: .gitignore
format: DESIGNER
source-set main: src/cf (CONFIGURATION)

Config written successfully

Нужна ручная настройка

Для init. Проект записан, но у расширения EDT не указан Base-Project в DT-INF/PROJECT.PMF. Прочитайте предупреждение и задайте базовый проект перед преобразованием исходников.

path: v8project.yaml
local path: v8project.local.yaml
gitignore: .gitignore
format: EDT
source-set sales: src/sales (EXTENSION)
[warning] EDT extension source-set 'sales' does not declare Base-Project in 'DT-INF/PROJECT.PMF': src/sales

Config written with warnings

Адрес объявлен

Для init --infobase. Созданы настройки проекта с выбранным адресом. Успешный ответ подтверждает запись файлов, а не доступность базы. Затем pull выгружает базу, а push отправляет исходники.

path: v8project.yaml
local path: v8project.local.yaml
gitignore: .gitignore
format: DESIGNER
source-set main: src/cf (CONFIGURATION)

Config written successfully

Файлы записаны по выбранному пути

Для init --format / --output. В ответе указан фактический путь каждого файла. В этом примере существующий основной файл перезаписан с --force:

path: config/v8project.yaml
local path: config/v8project.local.yaml
gitignore: .gitignore
format: EDT
source-set main: ../src/cf (CONFIGURATION)
overwritten: yes

Config written successfully

Ошибки и отказы

Проект уже существует

Для init: существующий основной файл без --force не перезаписывается. Если в нём уже объявлена база, команда отказывает и с --force. Код invalid_argument, выход 2. Для перезаписи проекта без объявленной базы задайте --force; для создания базы используйте infobase create.

ERROR: validation error: project configuration already exists

Исходники не прошли проверку

Для init. Невалидный дескриптор EDT: отказ до записи проекта. Код invalid_argument, выход 2. Исправьте дескриптор и повторите вызов.

ERROR: validation error: EDT project descriptor is invalid

В местном файле другой адрес

Для init --infobase: существующий местный слой объявляет origin с другим адресом; --force этот адрес не заменяет. Код invalid_argument, выход 2. Проверьте адрес origin в местном файле и передайте соответствующую строку.

ERROR: validation error: origin connection conflicts with existing local configuration

Выбран неподходящий ключ

Для init --format / --output: глобальный --config отклоняется. Код invalid_argument, выход 2. Для пути нового файла используйте --output.

ERROR: validation error: --config is not allowed for init; use --output

Путь вне проекта

Для init --format / --output: --output называет файл вне каталога запуска, например при запуске из другого каталога. Отказ приходит до чтения исходников и записи чего-либо. Код invalid_argument, выход 2. Запустите init из каталога проекта.

ERROR: validation error: `init --output` points outside the project directory

Файлы не удалось записать

Для init: ошибка файловой системы после начала записи. Уже записанные файлы получают прежнее содержимое, созданные каталоги убираются; что вернуть не удалось, называет сообщение. Код runtime_failure, выход 3. Проверьте права и повторите запуск.

ERROR: runtime error: project files could not be written

У init нет варианта --dry-run. Неизвестный ключ, команда или неверный синтаксис отклоняются парсером с диагностикой и Usage, выход CLI 2; JSON-конверт при этом не обещается. Исправьте вызов по подсказке Usage.

Причины отказов и уровни ошибок — в словаре ответов.

Формат файлов и адреса баз — на странице v8project.yaml. Для структурированного ответа добавьте глобальный ключ --json-message: результат содержит пути файлов, формат, наборы исходников, предупреждения и признак перезаписи.