Интерфейс командной строки

Ren'Py включает в себя интерфейс командной строки (CLI), который можно использовать для автоматизации некоторых задач разработки, что позволяет осуществлять непрерывную интеграцию и создавать сценарии для сборки релизов. В большинстве случаев в этом нет необходимости — все эти задачи можно выполнить через лаунчер Ren'Py.

Примеры на этой странице предполагают, что вы запускаете CLI из каталога Ren'Py SDK (каталога, содержащего renpy.py, renpy.sh и renpy.exe). Примеры также предполагают, что вы работаете на Linux или macOS. В Windows вам нужно будет заменить ./renpy.sh на lib\\py3-windows-x86_64\\python.exe renpy.py.

CLI не является стабильным интерфейсом — при необходимости он может меняться между релизами Ren'Py.

<base>

В приведённом ниже описании команд <base> — это путь к базовому каталогу проекта.

Команды проверки и тестирования

Проверка скрипта (Lint)

./renpy.sh <base> lint [ filename ] [ options... ]

Эта команда запускает проверку кода (lint) для игры. Это эквивалентно кнопке «Проверить скрипт (Lint)» в лаунчере.

filename

Если указано, отчёт о проверке будет записан в этот файл, а не выведен в стандартный поток вывода.

Lint принимает множество параметров, которые могут меняться от релиза к релизу. Чтобы просмотреть их, выполните:

./renpy.sh <base> lint --help

Запуск тест-кейсов

./renpy.sh <base> test [ testcase ] [ options... ]

Эта команда запускает автоматизированные тесты <testcases> для игры.

testcase

Имя тест-кейса или набора тестов для запуска. Если не указано, будет запущен «глобальный» набор тестов.

--enable_all

Если указано, все тест-кейсы и наборы тестов будут выполнены, независимо от их свойства enabled.

--overwrite_screenshots

Если указано, существующие скриншоты будут перезаписаны при выполнении инструкции screenshot.

--hide-header

Если указано, заголовок в начале запуска тестов будет отключён.

--hide-execution [no|hooks|testcases|all]

Если указано, вывод выполнения тестов будет скрыт. hooks скрывает хуки, testcases скрывает тест-кейсы и хуки, а all скрывает всё.

--hide-summary

Если указано, сводка в конце запуска тестов будет отключена.

--report-detailed

Если указано, во время выполнения будет отображаться подробная информация о каждом тесте.

--report-skipped

Если указано, будет отображаться информация о пропущенных тестах. Этот параметр следует использовать вместе с --report-detailed.

Команды сборки

Примечание

В процессе сборки Ren'Py создаст файлы .rpyc, которые содержат информацию для загрузки игры. Система непрерывной интеграции должна сохранять эти .rpyc-файлы после сборки и предоставлять их для следующей сборки либо напрямую, либо в каталоге old-game. Невыполнение этого требования может привести к тому, что игра не сможет загружать сохранения.

Сборка для Android

./renpy.sh launcher android_build <base> [ options... ]

Эта команда собирает релиз игры для Android. Предполагается, что лаунчер был использован для установки Android SDK, генерации ключей и настройки проекта.

--destination <directory>

Каталог, в который будет помещён результат. По умолчанию это каталог с именем «name-version-dists» в текущем каталоге, при этом информация берётся из build.name и build.version.

--bundle

Если указано, Ren'Py создаст бандл в формате .aab. Если не указано, Ren'Py создаст файл .apk.

--install

Если указано, Ren'Py установит файл .apk или .aab на подключённое устройство.

--launch

Если указано, Ren'Py запустит игру на подключённом устройстве. Этот параметр подразумевает --install.

Добавление выражения from

./renpy.sh <base> add_from

Эта команда добавляет выражение from к каждой инструкции call, у которой оно отсутствует. Обычно это следует делать перед выпуском релиза, чтобы помочь Ren'Py определять точку возврата из вызовов в изменённой игре.

Примечание

Эта команда изменит файлы скриптов вашей игры, и предполагается, что вы включите сделанные ею изменения в свою игру.

Компиляция

./renpy.sh <base> compile [ --keep-orphan-rpyc ]

Эта команда компилирует игру, создавая .rpyc-файлы из .rpy-файлов. Эквивалентно кнопке «Принудительная перекомпиляция» в лаунчере Ren'Py.

--keep-orphan-rpyc

По умолчанию Ren'Py удаляет .rpyc-файлы, которые не связаны с .rpy или _ren.py файлами с тем же именем. Если указан этот параметр, Ren'Py не будет удалять эти файлы.

Создание дистрибутивов

./renpy.sh launcher distribute <base> [ options... ]

Эта команда собирает дистрибутивы игры для Windows, macOS и Linux. Некоторые из параметров, которые принимает эта команда:

--destination <directory>

Каталог, в который будут помещены дистрибутивы. По умолчанию это каталог с именем «name-version-dists» в текущем каталоге, при этом информация берётся из build.name и build.version.

--no-update

Если указано, Ren'Py не будет создавать файлы обновления.

--package <package>

Задаёт имя пакета для сборки, где package — это имя пакета, например «pc», «mac» или «markets». Этот параметр можно указывать несколько раз для сборки нескольких пакетов. По умолчанию собираются все пакеты.

(Есть и другие параметры, но они более полезны для сборки самого Ren'Py.)

Создание проекта iOS

./renpy.sh launcher ios_create <base> <destination>

Эта команда создаёт проект Xcode, который можно использовать для сборки iOS-версии игры. Предполагается, что лаунчер хотя бы раз использовался для установки поддержки iOS.

destination

Каталог, в который будет помещён проект Xcode.

Заполнение проекта iOS

./renpy.sh launcher ios_populate <base> <destination>

Эта команда копирует игру в проект Xcode, созданный с помощью ios_create. Используется для обновления проекта, созданного с той же версией Ren'Py.

destination

Каталог для обновления.

Обновление каталога old-game

./renpy.sh launcher update_old_game <base>

Эта команда скопирует .rpyc-файлы из <base>/game в <base>/old-game.

Сборка для Web

./renpy.sh launcher web_build <base> [ options... ]

Эта команда собирает релиз игры для веб. Предполагается, что лаунчер был использован для установки поддержки веб и что все файлы конфигурации (такие как progressive_download.txt) находятся на своих местах.

--destination <directory>

Каталог, в который будет помещён корневой каталог веб-сборки.

Команды лаунчера

Эти команды используются для управления лаунчером Ren'Py из командной строки.

Установка каталога проектов

./renpy.sh launcher set_projects_directory <directory>

Эта команда устанавливает каталог, который лаунчер Ren'Py использует для хранения проектов. Она предназначена для использования в минималистичных системах, где недоступны другие способы выбора каталога проектов.

Это можно сделать только тогда, когда лаунчер не запущен.

Установка проекта

./renpy.sh launcher set_project <base>

Устанавливает текущий проект в соответствии с указанным. Для достижения этой цели будут изменены каталог проектов и текущий выбранный проект в лаунчере.

Это можно сделать только тогда, когда лаунчер не запущен.