Интерфейс командной строки
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>
Устанавливает текущий проект в соответствии с указанным. Для достижения этой цели будут изменены каталог проектов и текущий выбранный проект в лаунчере.
Это можно сделать только тогда, когда лаунчер не запущен.